Şu anda SOLID'i anlamaya çalışıyorum. Dolayısıyla, Bağımlılık İnversiyon Prensibi, herhangi bir iki sınıfın doğrudan değil de arayüzlerle iletişim kurması gerektiği anlamına gelir. Örnek: class A
Bir işaretçiyi türdeki bir nesneye bekleyen bir yönteme sahipse , class B
bu yöntem aslında türden bir nesne beklemelidir abstract base class of B
. Bu, Aç / Kapat için de yardımcı olur.
Bunu doğru anlamış olsaydım, sorum şu , bunu tüm sınıf etkileşimlerine uygulamak iyi bir pratik mi olacaktı yoksa katmanlar açısından düşünmeye çalışmalı mıyım?
Şüpheci olmamın nedeni, bu prensibi izlememiz için biraz bedel ödüyor olmamız. Diyelim ki bu özelliği uygulamaya ihtiyacım var Z
. Analizden sonra, ben özellik olduğu sonucuna Z
işlevsellik oluşur A
, B
ve C
. Ben oluşturmak cephe sınıf Z
, yani arayüzleri aracılığıyla, sınıfları kullanır A
, B
ve C
. Ben uygulanmasını kodlama başlar ve bir noktada ben görev biliyoruz Z
aslında işlevsellik oluşur A
, B
ve D
. Şimdi C
arayüzü, C
sınıf prototipini hurdaya ayırmam ve ayrı bir D
arayüz ve sınıf yazmam gerekiyor. Arayüzler olmadan sadece sınıfın değiştirilmesi gerekecekti.
Başka bir deyişle, bir şeyi değiştirmek için, değiştirmem gerekiyor 1. arayan 2. arayüz 3. beyanname 4. uygulama. Doğrudan bağlı bir uygulamada bir pitonda sadece uygulamayı değiştirmem gerekecek .