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

  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • Madeon

    Madeon

    31 Ocak 2010
  • TheForgottenGamer1

    TheForgotten

    28 AĞUSTOS 2009