SORU
8 Mart 2010, PAZARTESİ


Kalıtım ve Kompozisyon arasındaki fark

Olan Kompozisyon ve Miras aynı mı? Eğer kompozisyon desen uygulamak istiyorum, nasıl Java ile bunu yapabilir miyim?

CEVAP
8 Mart 2010, PAZARTESİ


Kesinlikle farklılar. Bir miras< . em ^"-a"ilişki. Kompozisyon< . em ^"-a".

Başka bir sınıf örneği C sınıf yerine C uzanan bir alan olarak alarak kompozisyon. Kompozisyon çok miras daha iyi olurdu iyi bir örnek şu anda java.util.Vector uzanır java.util.Stack. Şimdi bunu bir gaf olarak kabul edilir. Bir yığın< . em ^"OLMAZ" a " olurvektör; Ekle ve elemanları keyfi olarak görevden almaya yetkisi olmamalıdır. Yerine kompozisyon olmalıydı.

Ne yazık ki, miras hiyerarşisini değiştirme şimdi varolan kodu ile uyumluluk bozar beri bu tasarım hatasını düzeltmek için çok geç.Stack kalıtım yerine kompozisyon kullanmış, her zaman API ihlal etmeden başka bir veri yapısı kullanmak için modifiye edilebilir.

Ben çok Josh Bloch kitabı tavsiye ederim2. Baskı etkili Java

  • Madde 16: İyilik üzerinde miras kompozisyon
  • Madde 17: miras için Tasarım belge yoksa buna engel

Nesne tasarımı konusunda iyi değil bolca varolan sınıfları genişletme. İlk içgüdüsü yerine oluşturmak için olmalıdır.


Ayrıca Bkz:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Codecourse

    Codecourse

    3 ŞUBAT 2009
  • KittiesMama

    KittiesMama

    10 AĞUSTOS 2008
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008