SORU
2 EKİM 2008, PERŞEMBE


Kaplin ve Demeter Yasası Uyum

Law of Demeter sadece tam olarak ne olduğunu biliyorum nesneleri konuşman gerektiğini gösterir. Bu yöntem zincirleme diğer nesneler için konuşmak gerçekleştirmez. Bunu yaptığınızda, aracı nesneleri ile uygunsuz bağlantılar, diğer kod için coupling kodunuzu uygunsuz bir şekilde kuruyoruz.

O kadar da kötü değil.

Çözüm hakkında bilmeniz sınıf aslında ile ilişkisi olan nesne sorumluluğu temsilci basit sarma ifşa etmek olacak.

Bu iyi bir şey.

Ama, bu sınıfın düşük cohesion sahip olmanın bir sonucu gibi görünüyor. Artık yok, kesin olarak, sadece sorumlu, ama aynı zamanda bir anlamda bu delegeler, kodu daha az yapışkan ilgili nesnenin arabirimi bölümlerini tekrarlayarak.

O kadar da kötü değil.

Gerçekten uyum düşürücü bir sonucu mu? Kötünün iyisini mi?

Bu bir gri alanlar geliştirilmesi, ya da böyle bir tartışma yeri değildir, ya vardır, güçlü, ilkeli bir şekilde yapma kararı nerede çizmek için line ve hangi kriterlere kullanabilirsiniz bu kararı?

CEVAP
3 EKİM 2008, Cuma


Grady Booch içinde "dayalı Analiz ve": . Nesne Tasarımı

"Uyum fikrini de yapısal tasarım geliyor. Basitçe ifade edilirse, uyum tek bir modül unsurları arasında bağlantı ölçer (ve nesne yönelimli tasarım, tek bir sınıf veya nesne). En arzu edilen şekli uyum içinde tamamen alakasız bir soyutlama tesadüfi uyum. aynı sınıf veya modül içine atılır. Örneğin, bir sınıf oluşturan düşünün oldukça ilgisiz olan köpekler ve uzay aracı, soyutlamalar. Bu uyum en çok arzu edilen bir parçası olan unsurları fonksiyonel uyum, bir sınıf veya modülü birlikte iyi sınırlanmış bazı davranış sağlamak için çalışıyoruz. Böylece, sınıf Köpek kaynaşmış anlambilimi davranışı benimsemesi ise işlevsel. bir köpek, tüm köpek sadece köpek."

Yukarıda Müşteri ile Köpek Subsitute ve biraz daha net olabilir. Aslında Amacınız sadece işlevsel bütünlüğü için amaç ve tesadüfi bir uyum uzak mümkün olduğunca hareket etmektir. Senin soyutlamalar bağlı olarak, bu basit olabilir ya da bazı yeniden düzenleme gerektirebilir.

Not uyum o kadar "" daha tek bir sınıfa, sınıflar grup olarak beraber çalışma yani. modül için geçerlidir Bu durumda Müşteri ve Sipariş sınıflar hala bu güçlü relationshhip çünkü iyi uyum böylece, müşteriler sipariş oluşturabilir, siparişleri müşterilere aittir.

Martin Fowler arama daha rahat olduğunu söyledi "Demeter Öneri" (bkz: makale Mocks aren't stubs):

"Mockist test daha kaçınarak hakkında konuşma 'tren kazası' - açıkça söyleyeyim tarzı yöntemi zincirleri().() bunlardan.() getTheOther. Önleme yöntemi zincirleri de Demeter, kanunlara uygun olarak bilinir. Yöntem zincirleri bir koku iken, orta erkekler nesneleri yönlendirme yöntemleri ile şişirilmiş ters sorun da bir koku. (Her zaman eğer aramış olsaydı Demeter Yasası ile daha rahat olacağımı hissettimDemeter öneri.)"

O nereden geldiğimi güzel özetliyor: mükemmel kabul edilebilir ve "hukuk" gerektirebilir. bu sıkı sıkıya bağlı kalmanın daha uyum alt düzeyde genellikle gereklidir Tesadüfi uyum önlemek ve fonksiyonel uyum için amaç, ama daha doğal tasarım soyutlama uyum sağlamak için gerekli yerlerde verdiği girmenize gerek yok.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • maxman.tv

    maxman.tv

    29 EKİM 2013
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • The Bad Tutorials

    The Bad Tuto

    6 EKİM 2009

İLGİLİ SORU / CEVAPLAR