Sitemap

Member-only story

Dependency Inversion Prensibi Nedir ? (Kod örneğiyle) — SOLID

3 min readSep 11, 2019

Sınıflar arası bağımlılıklar olabildiğince az olmalıdır özellikle üst seviye sınıflar alt seviye sınıflara bağımlı olmamalıdır.

Dependency Inversion Yazılım Prensibi

Bir sınıfın, metodun ya da özelliğin, onu kullanan diğer sınıflara karşı olan bağımlılığı en aza indirgenmelidir. Bir alt sınıfta yapılan değişiklikler üst sınıfları etkilememelidir.

Yüksek seviye sınıflarda bir davranış değiştiğinde, alt seviye davranışların bu değişime uyum sağlaması gerekir. Ancak, düşük seviye sınıflarda bir davranış değiştiğinde, üst seviye sınıfların davranışında bir bozulma meydana gelmemelidir.

Peki, bütün bu sorunlardan kurtulmanın yolu nedir ?
Cevap: Dependency Inversion, yani üst sınıflar, alt seviyeli sınıflara bağlı olmamalı, çözüm ise her ikisi de soyut kavramlar üzerinden yönetilebilmelidir. Yüksek seviye ve düşük seviye sınıflar arasında bir soyutlama katmanı oluşturabiliriz.

Üst Seviye Sınıflar -> Soyutlama Katmanı -> Düşük Seviye Sınıfları

Bir örnekle anlaşılması kolay hale getirelim. Bir Notification sınıfımız olduğunu düşünelim ve bu sınıf aeracılığıyla Email ve Sms gönderebilelim.

Email gönderme işlemini yapabilen bir sınıfımız.

public class Email {

public void sendEmail() {
//Send…

--

--

Gökhan Ayrancıoğlu
Gökhan Ayrancıoğlu

Written by Gökhan Ayrancıoğlu

Software Engineer & Team Lead @Colendi • #Java • #Spring Boot • #Kotlin • #Microservices • https://gokhana.dev

Responses (5)