Inversion of Control(IoC) ve Dependency Injection(DI)

Inversion of Control (IoC)

Inversion of Control, bir nesnenin veya bir programın bölümlerinin kontrolünü ele almak yerine dışarıdan bir container veya framework tarafından sağlanan bir prensiptir. Bu prensip, yazılımın daha modüler ve esnek olmasını sağlar ve nesneler arasındaki bağımlılıkları azaltır. Genellikle nesne yönelimli programlama bağlamında kullanılır.

IoC, bir frameworkün bir programın akışını kontrol altına almasına ve özel kodumuza çağrı yapmasına olanak tanır. Bunu sağlamak için frameworkler, yerleşik ek davranışlarla birlikte soyutlamalar kullanır. Kendi davranışımızı eklemek istiyorsak, frameworkün sınıflarını genişletmemiz veya kendi sınıflarımızı eklentilememiz gerekir.

Nesneler arasındaki bağımlılıkları ortadan kaldıran ve bunun yerine soyutlamalara dayanan bir tasarım desenidir. Inversion of Control, yazılım bileşenlerini sorumluluklardan ayırmaya yönelik bir teknik olan Dependency Injection yoluyla elde edilebilir. Dependency Injection, bir sınıfın gerekli bağımlılıklarını dışarıdan enjekte etme yöntemini ifade eder. Bu da IoC prensibinin bir uygulama şeklidir ve IoC’nin bir sonucu olarak kullanılır.

IoC’nin avantajları arasında kodun daha iyi organizasyonu, test edilebilirlik ve yazılım bileşenlerinin daha kolay değiştirilebilir olması yer alır. Bu prensip, bir programın daha fazla modüler ve bakımı daha kolay hale getiren önemli bir yazılım mühendisliği ilkesidir.

Dependency Injection (DI)

Dependency Injection, bir objenin ihtiyaç duyduğu objeleri sağlar. Bağımlılıklar kendilerini oluşturmak yerine bazı dış araçlarla enjekte edilirler. Bu, kodun daha az bağımlı, daha modüler ve daha test edilebilir olmasını sağlar. Bu tasarım deseni, Inversion of Control (IoC) prensibinin bir uygulaması olarak da kabul edilir, çünkü bağımlılıkların kontrolünü sınıftan başka bir yere (çoğunlukla bir DI konteynerine veya konfigürasyon dosyasına) devreder.

Spring Boot’ta Dependency Injection için kullanılan yöntemler:

  1. Constructor Injection
  2. Setter Injection
  3. Field Injection
  4. Method Injection

References

原文链接:Inversion of Control(IoC) ve Dependency Injection(DI)

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
Judge each day not by the harvest you reap but by the seeds you plant.
不要问自己收获了多少果实,而是要问自己今天播种了多少种子
评论 抢沙发

请登录后发表评论

    暂无评论内容