Somut bir sınıf devralmasını herhangi bir iyi örnekler?
Arka plan:
Bir Java programcısı olarak, ben yoğun bir şekilde miras (daha doğrusu uygulamak:) arayüzleri, ve bazen ben temel sınıflar tasarım soyut. Ancak, ben asla gerçekten ihtiyacı hissettiğini alt sınıf bir somut (soyut olmayan) sınıf (durumlarda nerede yaptım, daha sonra ortaya çıktı ki başka bir çözüm, gibi delegation uyardı).
Şimdi somut bir sınıf devralmasını uygun bulunduğu durum neredeyse yok olduğunu hissetmeye başlıyorum. Bir kere, Liskov substitution principle (LSP) neredeyse imkansız önemsiz olmayan sınıflar için memnun görünüyor; ayrıca many questions burada da benzer bir görüşü yansıtıyor.
Yani benim soru:
Hangi durum (varsa) aslında somut bir sınıfından mantıklı geliyor mu? Bu en iyi tasarım kısıtlamaları göz önüne alındığında, düşündüğünüz başka bir beton sınıfından devralan bir sınıf, gerçek dünyadaki somut bir örnek verebilir misiniz? LSP (ya da tatmin edici LSP önemsiz gibi örnekler) karşılayan örneklerde özellikle ilgimi B.
Ben esas olarak bir Java arka plan var, ama herhangi bir dilden örnekler ilgileniyorum.
CEVAP
Sık sık biriskelet uygulamalarıbir arabirim için 0**. Eğer soyut yöntemler olmadan kullanildigini (kanca) gibi) verebilir, tercih başlatılamadı çünkü soyut olmayan iskelet bir sınıf var.
Bir örnek olurduiletme sarıcı sınıflarolmak mümkün iletmek için başka bir nesnenin bir beton sınıfı C
Uygulama I
, örneğin etkinleştirme decoration ya da basit bir kod yeniden kullanım C
kalmadan miras C
. Miras üzerinde Effective Java madde içinde böyle bir örnek 16, iyilik kompozisyon bulabilirsiniz. (Burada telif hakları yüzünden post etmek istemiyorum, ama gerçekten sadece yönlendirme sarılmış uygulanması için I
yöntem çağrıları).
Mockito herhangi bir sınıf değişkeni m...
Eğer herhangi bir ata sınıf jQuery kul...
Nasıl Ayar değil saplama somut uygulam...
Orada herhangi bir şekilde C# uzantısı...
Ne için Python Sınıf yöntemleri?...