SORU
23 Temmuz 2013, Salı


Nasıl arrowhead anti-desen önlemek için

Biraz iyi bir şey daha okunaklı içine benim kod yeniden oluşturulması hakkında kafam karıştı.

Bu kod parçası göz önünde bulundurun:

var foo = getfoo();
if(foo!=null)
{
    var bar = getbar(foo);
    if(bar!=null)
    {
        var moo = getmoo(bar);
        if(moo!=null)
        {
            var cow = getcow(moo);
            ...
        }
    }
}
return;

Gördüğünüz gibi, 2* *blokları iç içe, her iç içe çünkü ihtiyaç çok önceki değerlerine bağlıdır.

Şimdi benim kod biraz daha temiz bu konuda nasıl merak ediyordum.

Kendimi düşündüm bazı seçenekler olacaktır:

  • benim yöntem bırakıyorum her sonra iade madde ise, birden fazla yerde olurdu yani
  • sonra sonunda onları yakalamak ve sonunda yan döndüğümde deyimi (veya try/catch bloğu dışında) yerleştirmek istiyorum ArgumentNullExceptions, at
  • etiket ve goto: ile çalışmak

Bu seçenek "" benim yarattığım bu pisliği temizlemek için iyi bir yol olsaydı. merak ediyordum kirli bir bit gibi görünüyor

CEVAP
23 Temmuz 2013, Salı


return Çoklu tablolar için gitmek istiyorum. Bu kodu okumak ve anlamak daha kolay hale getirir.

Malum sebeplerden goto kullanmayın.

Yaptığınız check olağanüstü değil çünkü istisnalar kullanmak yok, sadece hesaba katmalıdır kadar bekleyebilirsiniz bir şey. Özel durumlara karşı programlama da anti-pattern.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alexander Johnson

    Alexander Jo

    26 Temmuz 2008
  • Munchkin the Teddy Bear

    Munchkin the

    30 EYLÜL 2011
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012