SOLID’e göre, sadece arayüzü yaratmanız değil, sadece farklı bir dosyada olması değil, farklı bir montajda olması gerekir.
Niye ya? Çünkü bir derleme içinde derlenen bir kaynak dosyasındaki herhangi bir değişiklik, derlemenin yeniden derlenmesini gerektirir ve bir derlemede yapılan herhangi bir değişiklik, herhangi bir bağımlı derlemenin yeniden derlenmesini gerektirir. Öyleyse, SOLID tabanlı amacınız, bir uygulama A'yı bir uygulama B ile değiştirebiliyorsa, C sınıfı arayüze bağlıysa, farkı bilmek zorunda kalmazsam, benimle montajdan emin olmalısınız. İçinde değişmez, dolayısıyla kullanımları korur.
“Ama sadece bir derleme” Protesto ettiğini duydum. Öyle olabilir, ancak akıllı telefonunuzdaki uygulamada, kullanıcılarınızın veri bant genişliğinde daha kolay; değiştirilen bir ikili dosya indirme mi, yoksa o ikiliyi ve kodun bağlı olduğu beş kodunu indirme mi? Her program bir LAN üzerindeki masaüstü bilgisayarlar tarafından tüketilmek üzere yazılmaz. Bant genişliğinin ve hafızanın ucuz olduğu durumlarda bile, daha küçük yama sürümleri değere sahip olabilir, çünkü Active Directory veya benzeri etki alanı yönetimi katmanları aracılığıyla tüm LAN'a itme konusunda önemsizdir; kullanıcılarınız, tümünün yeniden yüklenmesi için birkaç dakika yerine tekrar oturum açtıklarında uygulanmaları için yalnızca birkaç saniye bekleyeceklerdir. Bir proje inşa ederken derlenmesi gereken daha az meclis ne kadar hızlı olursa,
Şimdi, feragatname: Bu her zaman mümkün veya yapmak mümkün değildir. Bunu yapmanın en kolay yolu, merkezi bir “arayüzler” projesi oluşturmaktır. Bunun kendi olumsuz tarafları var; Arayüz projesi ve uygulama projesine uygulamanızın kalıcılık katmanını veya diğer önemli bileşenlerini yeniden kullanan diğer uygulamalarda referans verilmesi gerektiğinden kod daha az yeniden kullanılabilir hale gelir. Arayüzleri daha sıkı bağlı düzeneklere bölerek bu sorunun üstesinden gelebilirsiniz, ancak daha sonra uygulamanızda tam bir yapıyı çok acı verici yapan daha fazla projeniz var. Anahtar dengedir ve gevşek bağlı tasarımın korunması; Genellikle dosyaları gerektiği gibi taşıyabilirsiniz, böylece bir sınıfın birçok değişikliğe ihtiyaç duyacağını ya da bir arayüzün yeni uygulamalarının düzenli olarak gerekli olacağını göreceksiniz (belki de diğer yazılımların yeni desteklenen sürümleriyle arayüz oluşturmak için,