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

  • Caina Mondo Zine

    Caina Mondo

    13 EKİM 2007
  • MandMEvangelists

    MandMEvangel

    28 Ocak 2008
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010