Logo tr.removalsclassifieds.com

Yapıcı Enjeksiyonu ve Setter Enjeksiyonu Arasındaki Fark (Tablolu)

İçindekiler:

Anonim

Bağımlılık çözümü, sınıfın kendisi yerine harici bir etmen tarafından yapıldığında, bağımlılık enjeksiyonu olarak bilinir. Spring çerçevesinde, bir yapıcı argümanı veya ayarlayıcı yöntemi kullanılarak desteklenen iki standart bağımlılık enjeksiyonu yolu vardır. Bağımlılık enjeksiyonunun eski türü yapıcı enjeksiyon olarak bilinir ve ikincisi ayarlayıcı enjeksiyon olarak bilinir. Her iki yöntem de farklı amaçlar için kullanılır ve kendi artıları ve eksileri vardır.

Yapıcı Enjeksiyonu ve Setter Enjeksiyonu

Yapıcı enjeksiyonu ile Setter enjeksiyonu arasındaki fark, yapıcı enjeksiyonunun yapıcıyı kullanması ve diğer yandan ayarlayıcı enjeksiyonunun bağımlılığı enjekte etmek için ayarlayıcı yöntemlerini kullanmasıdır. Bu iki tür enjeksiyon yolu, güvenlik, okunabilirlik, değişmezliği destekleme vb. gibi çeşitli parametreler temelinde birbirinden farklıdır.

Yapıcı enjeksiyonu, bağımlılık enjekte etmek için bir kurucu kullanan yay çerçevesindeki bir tür bağımlılık enjeksiyonudur. Herhangi bir sınıf için gerekli olan bağımlılıklar, o belirli sınıfın yapıcısının parametreleri olarak belirtilir. Constructor enjeksiyonu, tüm bağımlılıklar hazır olmadıkça geliştiricinin herhangi bir nesne oluşturmasına izin vermez ve böylece başarılı bir bağımlılık enjeksiyonu sağlar.

Ayarlayıcı enjeksiyon, bağımlılığı enjekte etmek için ayarlayıcı yöntemleri kullanan yay çerçevesindeki bir tür bağımlılık enjeksiyonudur. XXX, bağımlı nesneleri istemciye enjekte eden bir bağımlılığı ifade ettiği setXXX() biçiminde ayarlayıcı yöntemlerine sahiptir. Bağımlılığı çözmenin bu yolu, Spring çerçevesinde çok yaygındır.

Constructor Injection ve Setter Injection Arasındaki Karşılaştırma Tablosu

Karşılaştırma Parametreleri

Yapıcı Enjeksiyon

Setter Enjeksiyon

Bağımlılık enjekte edildi Bir kurucu kullanır. Setter yöntemlerini kullanır.
okunabilirlik Setter ile karşılaştırıldığında çok okunaklı değil. Daha okunaklı.
mülkü geçersiz kıl Bağımlılık geçersiz kılınamaz. Belirli bağımlılıkları geçersiz kılabilir.
Değişiklikler Her zaman yeni bir fasulye örneği oluşturur. Herhangi bir yeni fasulye örneği oluşturmaz.
Değişmezlik Değişmezliği destekler. Desteklemiyor.

Yapıcı Enjeksiyon Nedir?

Yapıcı enjeksiyonu, Spring çerçevesindeki bağımlılığı çözmenin standart yollarından biridir; bu, sınıflar için gerekli bağımlılıkların listesini, bunları sınıfın yapıcısına parametre olarak atayarak statik olarak tanımlar. Bağımlılık gerektiren tüm sınıfların içinde, bir örneği kurucu argümanı olarak alan bir genel kurucu olmalıdır ve bu kurucu mutlaka o sınıf içindeki tek genel kurucu olmalıdır.

Birden fazla bağımlılığa ihtiyaç varsa, aynı kurucuya ek argümanlar eklenmelidir. Bağımlılığın tamamen enjekte edilmesini sağlamak için, üyelerin yalnızca bir şey yapması gerektiğini belirten tek bir sorumluluk ilkesi izlenmelidir. Sınıfların yapıcısını daha hızlı ve daha güvenilir hale getirmek için yapıcı, diğer herhangi bir mantıktan uzak tutulmalıdır.

Yapıcı enjeksiyonunun önemli bir gerçeği, tüm bağımlılıklar hazır olmadıkça nesnelerin oluşturulmayacağıdır. Yapıcı bu şekilde her çağrıldığında yeni örnekler oluşturduğundan, onda geçersiz kılma mümkün değildir. Constructor Injection temel olarak tüm bağımlılıklarla nesneler oluşturmanın gerekli olduğu durumlarda kullanılır. Bu, bağımlılıkları doğru şekilde uygulamanın en genel olarak uygulanabilir ve en kolay yoludur.

Setter Enjeksiyon Nedir?

Setter enjeksiyonu, bağımlılıkları çözmek için setter yöntemlerini kullanan Spring çerçevesindeki bağımlılığı çözmenin standart yollarından biridir. Ayarlayıcı yöntemler setXXX() biçimindedir; burada XXX, enjekte edilmesi gereken bağımlılığı belirtir. Bu enjeksiyon yönteminde önce nesne oluşturulur ve daha sonra bağımlılık enjekte edilir. Spring'i yapılandırmak için XML dosyaları kullanılır ve bu nedenle okunabilirlik büyük bir endişe kaynağıdır.

Ayarlayıcı yöntemlerin belirli bir yöntem adı biçimi olduğundan, okunabilirliği birçok yönden artırır. Daha fazla sayıda bağımlılık enjekte etme ihtiyacı olduğunda, diğer enjeksiyon yöntemlerine göre ayarlayıcı enjeksiyon tipi çok tercih edilir ve tercih edilir. Buna ek olarak, geliştiriciler setter enjeksiyonunu kullanarak, her seferinde yeni bir bean örneği oluşturmadığından değerleri kolayca geçersiz kılabilir ve değiştirebilir. Setter enjeksiyonunun tek dezavantajı, tam bağımlılık enjeksiyonunu sağlamamasıdır.

Belirli bir nesneye bağımlılık eklenmiş olup olmadığına dair bir garanti yoktur. Başka bir deyişle, eksik bağımlılığa sahip bir nesne olabileceği anlamına gelir. Setter enjeksiyonu, bağımlılık enjeksiyonunu uygulamanın en esnek ve en yaygın yoludur.

Yapıcı Enjeksiyonu ve Setter Enjeksiyonu Arasındaki Temel Farklar

Çözüm

Sonuç olarak, bağımlılıkları enjekte etmenin her iki yolunun da yapıcı enjeksiyon veya ayarlayıcı enjeksiyon olmasına izin vermesi, kendi artıları ve eksileri olmasıdır. Buna ek olarak Spring, geliştiricileri değerlendirici dışında kimseyi kullanmaktan çekinmez. Bir Spring konfigürasyon dosyasında hem yapıcı enjeksiyon hem de ayarlayıcı enjeksiyon kullanmakta özgürdürler. Bağımlılık enjekte ederken akılda tutulması gereken önemli şey, tüm bağımlılıklarla nesneler oluşturma zorunluluğu olduğunda yapıcı enjeksiyonunu kullanmak ve bağımlılık sayısı fazla olduğunda veya daha iyisine ihtiyaç duyulduğunda setter enjeksiyonunu kullanmaktır. okunabilirlik.

Referanslar

  1. https://digitalcommons.calpoly.edu/csse_fac/34/
  2. https://books.google.com/books?hl=tr&lr=&id=InfRDwAAQBAJ&oi=fnd&pg=PA63&dq=constructor+injection&ots=Hon_bCw-Kv&sig=VdsD_S0lCfP3D8idI8q4F6RnhoE

Yapıcı Enjeksiyonu ve Setter Enjeksiyonu Arasındaki Fark (Tablolu)