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

  • BioHunta

    BioHunta

    28 Mayıs 2006
  • disneychannel

    disneychanne

    19 ŞUBAT 2006
  • MADFINGER Games a.s.

    MADFINGER Ga

    21 NİSAN 2009