SORU
1 Temmuz 2011, Cuma


Kontrol çevirme vs Bağımlılık Enjeksiyon

Göre kağıt yazan Martin Fowler: http://martinfowler.com/bliki/InversionOfControl.html , inversion kontrol ilkedir denetimi akışı bir programdır ters: yerine programcı kontrol akışının bir program, dış kaynaklardan (çalışma ortamı, hizmet, diger parçalar) kontrolünü elinize alın. Başka bir şey içine bir şey tak gibi. YEREL 2.0 hakkında bir örnek söyledi:

Örneğin Oturum Bean arayüzü ejbRemove, ejbPassivate tanımlar (ikincil depolama için saklanır), ve (pasif geri ejbActivate devlet). Ne zaman kontrol edemezsin bu yöntemler, sadece ne denir yapıyorlar. Konteyner,, bize aramalar öyle deme.

Bu çerçeve ve kütüphane arasındaki fark yol açar:

Kontrol İnversion önemli bir parçasıdır bir çerçeve için farklı kılan ne kütüphane. Bir kütüphane aslında. arayabileceğiniz fonksiyonlar kümesi, bugünlerde genellikle organize sınıflar. Her çağrının ve işe yarıyor biraz istemciye döndürür kontrol.

Bence, Dİ IOC, bu bakış açısını bir nesnenin bağımlılık ters anlamı: yerine kendi bağımlılıkları, yaşam döngüsü kontrol eder... başka bir şey oluyor. Ama eller tarafından Dİ bana anlattığın gibi, Dİ IOC gerekli değildir. Hala DI ve IOC yapabiliriz.

Ancak, bu kağıt (pococapsule, başka bir IOC Çerçeve için C/C ). bu yüzden IOC ve DI, IOC konteyner ve Dİ çerçeveleri olan çok daha üstün J2EE, J2EE beri karışımları çerçevesinde koduna bileşenleri, böylece hissettiriyor Düz Eski Java/C Nesne (POJO/POCO).

Kumanda Kapları ters Bağımlılık Enjeksiyon desen dışında: http://www.pocomatic.com/docs/whitepapers/ioc-vs-di/

Ek okuma Bileşen Tabanlı ikinci kağıt üstünde yol açan Gelişme Çerçeve, eski: sorunun ne olduğunu anlamak içinNeden ve ne Denetim İnversion: 2**

Benim SorumTam olarak ne IOC ve DI? Kafam karıştı. Pococapsule, IOC dayalı bir şey programcılar ve çerçeveler arasındaki nesnelerin kontrolü ters çevir, yalnızca bir ya da daha fazla önemli.

CEVAP
1 Temmuz 2011, Cuma


IoCuygulama çerçevesinde, yöntem aramak yerine, genel bir terim anlamı, çerçeve uygulamaları uygulama tarafından sağlanan çağırır.

nesnenin hangi uygulamaları/belirleyiciler/service-ups bak kurucular ile bir nesnenin içine geçirildiği IoC bir form, 'bağımlı' doğru. uslu için

Dİ kullanmadan IoCörneğin bu uygulama sadece alt-sınıflandırmaya ile değiştirilebilir çünkü Şablon kalıbı olurdu.

Dİ Çerçevelervardır Dİ yararlanmak için tasarlanmış ve ARAYÜZLERİ (veya Java Annotations) kolay uygulamaları geçmek için tanımlayabilirsiniz.

IoC Kaplarvardır Dİ programlama dilini dışında çalışabilir çerçeveler. Biraz daha az invaziv olan meta dosyaları (örneğin XML) kullanmak için hangi uygulamaları yapılandırabilirsiniz. IoC yapabilirsiniz ile normalde pointcuts uygulama enjekte imkansız gibi olurdu.

Ayrıca http://martinfowler.com/articles/injection.html#InversionOfControl bkz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • efaustus9

    efaustus9

    16 HAZİRAN 2006
  • monkophile

    monkophile

    25 Temmuz 2007
  • Phandroid

    Phandroid

    26 Ocak 2009