- SRP -> Single Responsibilty Principle
- OCP -> Open Close Principle = Sınıflar gelişmeye açık lakin değişmeye kapalı olmalıdır.
- LSP -> Liskov Substitution Principle
- ISP -> Interface Segregation Principle
- DIP -> Dependency Inversion Principle (Dependeny = Bağlılık)
Concrete ve abstract diye iki folder olusturup ınterface ve abstract classları abstract clasa eklemek diğer classları Concrete folderıne eklemek daha düzenli olacaktır.
- Ornek - > PersonelOlusturucu adında bir class açtık ancak bu SRP'ye uygun bir şekilde olmadı
- Duzeltilmis Ornek -> Personel
- Ornek2
- Ornek2Duzeltilmiş(Open close prensibine göre)
- CoffeeExample
- DuzenlenmişUygunHali (Coffee örneğinin Open close prensibine göre)
- OrnekBad
- OrnekBadDuzeltilmis (Liskov Substitution prensibine göre) (Alan Hesaplayıcı örneği)
- KusOrnegi
- KusOrnegiDuzeltilmis (Interface Segregation prensibine göre) (Kus türleri ile alakalı Interface Segregation prensibine uyan ve uymayan şekilde örneklendi.)
- Ornek (Köfte-Tavuk konusu)
- OrnekDuzenlenmis (Dependency Inversion prensibine göre)
- Loglama -> Dependency Inversion prensibine uygun şekilde tek ornek yapıldı.
- NOT: Dependency Inversion Dependences injection yapmış oluyor.????
- Yapılan konuya/örneğe bu linkten bakabilirsiniz.
- unity paketini kurduk
- Constructor bazlı injection
- Console Application açıldı.
- Microsoft.Extensions.DependencyInjection paketini indirdik.NugGet'lardan
- Bir örnek yapıldı.