Demeter Kanunu şöyle der:
- Her ünite diğer üniteler hakkında sadece sınırlı bilgiye sahip olmalıdır: sadece mevcut ünite ile ilgili "yakından" olan üniteler.
- Her birim sadece arkadaşlarıyla konuşmalıdır; yabancılarla konuşma.
- Sadece yakın arkadaşlarınızla konuşun.
C # 6.0 boş koşullu işleç adı verilen yeni bir işleç başlattı . IMHO, kodlamayı kolaylaştırır ve okunabilirliği artırır. Ancak, daha sonra birleştirilmiş kod yazmayı da kolaylaştırır, çünkü sınıf alanlarında gezinmek daha kolaydır, zaten boşluğu kontrol eder (gibi bir şey var x = A?.B?.C?.D?.E?.F?
).
Bu yeni operatörün Demeter Yasasına aykırı olduğunu söylemek doğru mudur?
X.Y.Z.W.U
"kanuna" aykırı olduğunu söylemiyorum . Ancak, kodla başa çıkma deneyimlerime göre, zamanın% 90'ı sadece çirkin eşleşmiş bir kod.
.?
En fazla LOD ihlal +
veya -
yok.
A?.B?.C?.D?.E?.F?
ihlal edeceğine inanıyorsunuz ? - LoD kaç nokta hakkında değil ve çağıran yöntemin noktaları ihlal eden bir yapı hakkında böyle bir bilgiye sahip olmaması durumunda böyle bir çağrı mükemmel kabul edilebilir olacaktır. Bu tür kod olabilir LOD ihlal hepsi kullanımları söylemek yeterli değildir do LOD ihlal etmektedir.