'da iç içe geçmiş kümelerle ilgileniyorum DDD'ye yeni başlıyorum ve verilerimin ilişkisel doğasını nasıl karşılayacağımı bulmakta biraz sorun yaşıyorum. Topluluğumun kökü olarak kabul edileceğine inandığım şeylere sahibim, ancak toplamın da kendi toplamı var. Demeter Yasasını ihlal etmek istemiyorum, bunun yanlış olduğunu düşündüğümü merak ediyorum ve bazı DDD uzmanlarının birtakım içgörüler sunabileceğini umuyorum.DDD
Toprağımdaki kök, AccountElement
numaralı varlıkların toplamı olan ve ProductComponent
varlıklarının mantıksal gruplandırmaları olan Account
nesnesidir.
bir Account
bağlamında bir AccountElement
dışında bir anlamı yoktur, bu yüzden Account
nesne toplamı, toplam köküdür benim sonuca rahatım, ben varlık toplu Elements
özelliğine sahip olduğunu tahmin ediyoruz. Kafamı karıştıran ProductComponent
koleksiyonu. Bu topluluğun AccountElement
dışında bir anlamı yoktur ve gerçekten'un Account
dışında bir anlamı yoktur.
var reference = account.Elements(0).ProductComponents(0).ReferenceCode;
Ama (etki alanı açısından) bir anlam ifade etmiyor, aynı zamanda en:
ben gibi, ona yolumu süsleyen tek tek ProductComponent
nesneleri erişen gerektiğini düşünmüyorum ProductComponent
'a doğrudan bir Account
varlıktan erişebilirsiniz.
Eminim ki, alanım hakkında bilgi sahibi olmadan bunu anlamak biraz zor, ama umarım iyi geribildirim almak için yeterlidir.
Nesne modelinizin çalışması için bu yuva nesnelere gereksiniminiz varsa, Demeter Yasası hakkında çok fazla endişe etmem. Bkz. Http://haacked.com/archive/2009/07/14/law-of-demeter-dot-counting.aspx –
Ayrıca bkz. Http://www.dcmanges.com/blog/37 –
Teşekkürler, Phil'in makalesi Yararlı ve çocukların çocuklarının ayrılmaz bir şekilde bağlantılı olduğu sorusu, topluluğun köküdür. Buna bakacak olursak, sadece varlıkların yuvalanması mantıklıdır. Daha rahatım, bu doğru. Çünkü bu kararı verdikten sonra, kodun yönü çok daha sezgisel gibi görünüyor. Ya da DDD'nin ruhuyla, her yerde mevcut olan dilin daha soyut bir soyutlaması olduğunu söyleyebilirim;) –