Bu prensibe göre somut sınıflara olan bağımlılıklar soyut sınıflar ve interface sınıflar kullanılarak ortadan kaldırılmalıdır, çünkü somut sınıflar sık sık değişikliğe uğrarlar ve bu sınıflara bağımlı olan sınıflarında yapısal değişikliğe uğramalarına sebep olurlar.
Resim 1 de görülen yapı DIP prensibine ters düşmektedir, çünkü RemoteControl sınıfı somut bir sınıf olan TV sınıfına bağımlıdır. TV bünyesinde meydana gelen her değişiklik doğrudan RemoteControl sınıfını etkileyecektir. Ayrıca RemoteControl sınıfını TV sınıfı olmadan başka bir yerde kullanılması mümkün değildir.
Bu yazıyı PDF dosyası olarak aşağıdaki linkten edinebilirsiniz.
Dependency Inversion Principle (DIP) - Bağımlılıkların Tersine Çevrilmesi Prensibi (28,9 KiB, 5.096 yükleme)
EOF (End of Fun)
Özcan Acar
Tasarım Prensipleri kategorisinden son yazılar
- Sorumluluk Sahibi Olmak - August 20th, 2012
- SOLID - December 30th, 2011
- Stable Abstractions Principle (SAP) – Stabil Soyutluk Prensibi - October 26th, 2011
- Stable Dependencies Principle (SDP) – Stabil Bağımlılıklar Prensibi - October 26th, 2011
- Acyclic Dependency Principle (ADP) – Çevrimsiz Bağımlılık Prensibi - October 26th, 2011
- Common Closure Principle (CCP) – Ortak Kapama Prensibi - October 26th, 2011
- Common Reuse Principle (CRP) – Ortak Yeniden Kullanım Prensibi - July 24th, 2010
- Reuse-Release Equivalence Principle (REP) - Tekrar Kullanım ve Sürüm Eşitliği - December 9th, 2009
- Interface Segregation Principle (ISP) – Arayüz Ayırma Prensibi - November 17th, 2009
- Liskov Substitution Principle (LSP) – Liskov'un Yerine Geçme Prensibi - October 29th, 2009
Pingback: SOLID - Kurumsal Java Yazılımı
Selman
15 Mayıs 2012Yazı için teşekkürler.
Şurada arkadaş daha detaylı bir şekilde anlatmış http://www.cihataltuntas.com/?p=76
Pingback: Spring Çatısının Yazılım Geliştirme Filozofisi - Kurumsal Java Yazılımı - Özcan Acar
Pingback: Pratik Programcı Yayınları » Spring Çatısının Yazılım Geliştirme Filozofisi
Pingback: Pratik Programcı Yayınları » Neden Spring, JPA ve Diğer Çatılar ÖğrenilmeMEli
ali
13 Kasım 2017Selamlar hocam,
Yaklasik 1 yildir sizi takip ediyorum. Sindirerek her yazinizi okumaya calisiyorum ve ogrendigim yeni bilgileri yazilim gelistirirken kullanmaya calisiyorum. Paylastiginiz bilgiler icin cok tesekkur ederim. Turkce kaynak universiteye basladigimda sorundu simdi hala sorun cunku yeterli nitelikte kaynak bulmak cok zor. Ingilizceyle elimizden geldigince yabanci kaynaklari takip etmeye calisiyorum ama bu yazidiginiz konularin iyi sindirilmesi gerekiyor bence. Refactoring, design patterns ve diger butun konular gercekten cok onemli. Bilmediginiz icin su an soylemek istedim . Uzerimde emeginiz var hakkinizi helal edin. Hayir dualarim sizinle. Tesekkur ederim yazilarinizin devamini dort gozle bekliyorum. Yer imlerinde RSS olarak ekledim tetikteyim her zaman :)
Ali
13 Kasım 2017Bir de Ozcan Hocam, Java 9 module yapisi, Java 8 ve Java 8 ile gelen method reference, anonymus class, functional programming ve RxJava gibi konular uzerine yazilar yazmaya vaktiniz olursa cok mutlu olurum. Saygilarimla.
Özcan Acar
13 Kasım 2017Insallah, vakit buldukca yazmaya calisacagim.
Selamlar
Ali
14 Kasım 2017InsaAllah Özcan Hocam tesekkur ederim :)
Saygilarimla.