Ini niggle kecil, tetapi setiap kali saya harus kode sesuatu seperti ini, pengulangan mengganggu saya, tapi saya tidak yakin bahwa salah satu solusi tidak lebih buruk.
if(FileExists(file))
{
contents = OpenFile(file); // <-- prevents inclusion in if
if(SomeTest(contents))
{
DoSomething(contents);
}
else
{
DefaultAction();
}
}
else
{
DefaultAction();
}
- Apakah ada nama untuk jenis logika ini?
- Apakah saya sedikit terlalu OCD?
Saya terbuka untuk saran kode jahat, jika hanya karena penasaran ...
make sure I have valid data for DoSomething(), and then DoSomething() with it. Otherwise, take DefaultAction()
. Detail penting untuk memastikan Anda memiliki data untuk DoSomething () berada pada level abstraksi yang lebih rendah, dan karenanya harus dalam fungsi yang berbeda. Fungsi ini akan memiliki nama di tingkat abstraksi yang lebih tinggi, dan implementasinya akan tingkat rendah. Jawaban yang baik di bawah mengatasi masalah ini.
DefaultAction
panggilan melanggar prinsip KERING