Bir kelime: Hayır.
Daha fazla kelime: Bağımlılık enjeksiyonu aynen öyle Başka bir nesnenin bağlı olduğu, ancak karmaşık ayrıntılarını başka bir kaynaktan bilmemesi gereken kaynakları tanıtmanızın bir yoludur. DI'yi kullanmak, programınızdaki HİÇBİR ŞEYİN başka bir nesneyi nasıl yaratacağını bilmesi gerektiği anlamına gelmez; Aslında, önemsiz olmayan bir programın "yeni" anahtar kelimeden (veya yansıma tabanlı alternatiflerden) tamamen kaçınmasının son derece olanaksız olduğunu kabul ediyorum. Bununla birlikte DI, bu nesneyi diğerine sıkıca bağlayacak çok fazla bağımlılık gerektiren karmaşık nesnelerin nasıl oluşturulacağını bilmemesi gereken nesnelerin, tüm bu sıkı bir şekilde birleştirilen bilgiye sahip olmaması gerektiği anlamına gelir.
İki büyük O / O yazılım tasarımı teorisi olan GRASP ve SOLID'i inceleyeceğim. GRASP size nesnenin amacını incelemenizi ve kendinize “Bu başka türden yeni nesneler oluşturmaktan sorumlu mu olmalı? Bu nesnenin 'iş tanımının bir parçası mı?” Diye soracak. SOLID bir adım daha ileri gidiyor: "S", bir nesnenin bir işe sahip olması gerektiğini açıkça belirten ve bu belirli işi yapan programdaki tek nesne olması gerektiğini belirten "Tek Sorumluluk İlkesi" anlamına geliyor.
Dolayısıyla, GRASP genellikle bu yeni nesneleri yaratan mevcut sınıflarınıza bakmanızı ve bu nesneyi yaratma görevinin, istediğiniz "uygunluk" seviyenizi koruyarak nesnenin zaten ne yaptığına uygun olduğunu bulmanızı teşvik eder. SOLID size uyumun anahtar olduğunu söyleyecektir; Bu nesneleri yaratma görevi, sınıfınıza enjekte edilmesi gereken bazı fabrikalara verilmelidir. Programınızın karmaşıklığı artmaya devam ettikçe, bu yöntemlerden herhangi birine bağlı kalmanın, yeniden yapılandırmaya istekli olmanın, benzer mimarilere yol açacağını düşünüyorum.