The Law of Demeter menyatakan berikut ini:
- Setiap unit harus memiliki pengetahuan yang terbatas tentang unit lain: hanya unit "erat" yang terkait dengan unit saat ini.
- Setiap unit hanya boleh berbicara dengan teman-temannya; jangan berbicara dengan orang asing.
- Hanya berbicara dengan teman dekat Anda.
C # 6.0 memperkenalkan operator baru yang disebut operator null-kondisional . IMHO, itu membuat pengkodean lebih mudah dan meningkatkan keterbacaan. Tetapi juga membuatnya lebih mudah untuk menulis lebih banyak kode yang digabungkan, karena lebih mudah untuk menavigasi melalui bidang kelas, sudah memeriksa nullity (sesuatu seperti var x = A?.B?.C?.D?.E?.F?
).
Apakah benar menyatakan bahwa operator baru ini bertentangan dengan Hukum Demeter?
X.Y.Z.W.U
merupakan pelanggaran terhadap "hukum". Tapi, dalam pengalaman saya berurusan dengan kode, 90% dari waktu itu hanya kode digabungkan jelek.
.?
ada lagi pelanggaran LoD daripada +
atau -
tidak.
A?.B?.C?.D?.E?.F?
akan melanggarnya - LoD bukan tentang berapa banyak titik dan jika metode panggilan memiliki informasi tentang struktur yang tidak melanggar poinnya, panggilan semacam itu akan dapat diterima dengan sempurna. Bahwa kode tersebut bisa melanggar LOD tidak cukup untuk mengatakan bahwa semua penggunaan itu melakukan melanggar LOD.