S = Tek Sorumluluk İlkesi
Bu yüzden iyi organize edilmiş bir klasör / dosya yapısı ve Nesne Hiyerarşisi görmeyi bekliyorum. Her işlev sınıfı / işlevsellik, işlevselliklerinin çok açık olduğu adlandırılmalıdır ve yalnızca bu görevi gerçekleştirmek için mantık içermelidir.
Binlerce kod satırına sahip dev yönetici sınıfları görürseniz, bu tek bir sorumluluğun takip edilmediğinin bir işareti olacaktır.
O = Açık / Kapalı Prensibi
Bu, temel olarak, mevcut işlevselliğin değiştirilmesi / üzerinde değişiklik gerektiren minimum etkiye sahip yeni sınıflar aracılığıyla yeni işlevselliklerin eklenmesi gerektiği düşüncesidir.
Bir işlevsellik tasarımını asıl uygulamadan ayırmak için başkalarının yanlarına gelip uygulamalarını etkilemeden uygulamalarını ayırmak için nesne kalıtımı, alt yazma, arayüzler ve soyut sınıfların birçok kullanımını görmeyi beklerdim. orijinal.
L = Liskov ikame prensibi
Bunun alt türleri üst tür olarak ele alma becerisiyle ilgisi var. Doğru bir kalıtsal nesne hiyerarşisi uyguluyorsanız C # içindeki kutudan çıkar.
Ortak nesneleri temel tür olarak ele almanın kodunu ve alt türlerin kendilerine örnek vermek ve çalışmak yerine temel / soyut sınıflarda çağrı yöntemlerini görmeyi beklerdim.
I = Arayüz Ayrıştırma İlkesi
Bu, SRP'ye benzer. Temel olarak, daha küçük işlevsellik alt kümelerini arabirimler olarak tanımlar ve sisteminizi ayrı tutmak için çalışanlarla çalışır (örneğin FileManager
, Dosya G / Ç ile ilgili tek bir sorumluluk üstlenebilir, ancak bu , okuma için belirli yöntem tanımlarını içeren IFileReader
ve uygulayabilen) IFileWriter
ve dosyaların yazılması).
D = Bağımlılık İnversiyon Prensibi.
Yine, bu bir sistemin ayrı tutulması ile ilgilidir. Belki de çözümde kullanılmakta olan bir .NET Bağımlılık Enjeksiyonu kütüphanesinin, Unity
ya Ninject
da ya da bunun gibi bir ServiceLocator sisteminin kullanılmasında aranıyor olmalısınız AutoFacServiceLocator
.