İlk ben gerçeği işaret etmek zorunda CustomException
kapsamaz Exception
gerçekten bir değil bu yüzden Exception
.
Bahsedilen:
Bağımlılık İnversiyon Prensibi ile ilgilenmiyorsanız , olduğu gibi bırakın. Bir arabirimin somut sınıflara bağımlı olması mükemmel bir şekilde mümkündür , örneğin birçok arayüz somut sınıflara bağlıdır String
veya Object
hangileri somut sınıflara bağlıdır . Mesele şu ki, Java SDK'ya ait sınıfların yazdıklarımızdan daha kararlı (kod kırıcı değişikliklere daha az eğilimli) olduğuna inanma eğilimindeyiz.
Diğer yandan:
(Sayısız faydaları olan ve benim tavsiyem olan) DIP'yi takip etmek istiyorsanız, iki şeyden birini yapmanız gerekir:
seçenek 1
- Yap
CustomException
soyut
- Olduğu
void onError(CustomException ex)
gibi tut
seçenek 2
- Yap
CustomException
bir arayüz
- Olduğu
void onError(CustomException ex)
gibi tut
Arayüz herhangi bir somut sınıfa değil, yalnızca soyutlamalara bağlı olacağından, bu seçeneklerden herhangi biriyle DIP'ye uyuyorsunuz.
Bağımlılığın tersine çevrilmesinin doğrudan bir uygulamasında, özetler üst / politika katmanlarına aittir. Bu mimari, daha yüksek hizmetleri / ilke bileşenlerini ve daha düşük hizmetleri aynı pakette tanımlayan özetleri gruplandırır. Alt düzey katmanlar, bu soyut sınıfların veya arabirimlerin miras / uygulanmasıyla oluşturulur . Martin, Robert C. (2003).
- Çevik Yazılım Geliştirme, İlkeler,> Desenler ve Uygulamalar. Prentice Salonu. sayfa 127-131. ISBN 978-0135974445.