Bu küçük bir kıkırdama, ama böyle bir şeyi kodlamak zorunda kaldığımda tekrarlama beni rahatsız ediyor, ama çözümlerin hiçbirinin daha kötü olmadığından emin değilim.
if(FileExists(file))
{
contents = OpenFile(file); // <-- prevents inclusion in if
if(SomeTest(contents))
{
DoSomething(contents);
}
else
{
DefaultAction();
}
}
else
{
DefaultAction();
}
- Bu tür bir mantık için bir isim var mı?
- Ben de biraz OKB muyum?
Kötülük kanunu önerilerine açığım, sadece merak aşkına ...
make sure I have valid data for DoSomething(), and then DoSomething() with it. Otherwise, take DefaultAction()
. Nitty gritty, DoSomething () 'in verilerinin elinizde olduğundan emin olmanın detaylarını daha düşük bir soyutlama seviyesindedir ve bu nedenle farklı bir fonksiyonda olmalıdır. Bu fonksiyon daha yüksek soyutlama seviyesinde bir isme sahip olacak ve uygulaması düşük seviyeli olacaktır. Aşağıdaki iyi cevaplar bu konuyu ele almaktadır.
DefaultAction
çağrı DRY ilkesini ihlal ediyor