«multiple-inheritance» etiketlenmiş sorular

9
Birden fazla kalıtımın nefret edilmesinin “gerçek” bir nedeni var mı?
Her zaman bir dilde çoklu miras alma fikrini sevdim. Çoğu zaman kasıtlı olarak affedilmiş olmasına rağmen ve sözde "değiştirme" arayüzlerdir. Arayüzler, çoklu kalıtımın aynı toprakları kapsamaz ve bu kısıtlama zaman zaman daha fazla kazan koduna yol açabilir. Bunun için duyduğum tek temel sebep , temel sınıflardaki elmas problemi . Bunu …

1
Karışımlar veya özellikler düz çoklu kalıtımdan nasıl daha iyidir?
C ++ çoklu çoklu mirasa sahip, birçok dil tasarımını tehlikeli olarak yasaklıyor. Ancak, Ruby ve PHP gibi bazı diller aynı şeyi yapmak için garip sözdizimi kullanır ve bunları karmaşa veya özellikler olarak adlandırır. Karışımların / özelliklerin kötüye kullanımı basit çoklu kalıtımdan ziyade zor olduğunu defalarca duydum. Onları özel olarak daha …

6
Birden fazla miras Tek Sorumluluk İlkesini ihlal ediyor mu?
İki ayrı sınıftan miras alan bir sınıfınız varsa, bu, alt sınıfınızın her bir üst sınıftan bir tane olmak üzere otomatik olarak (en az) 2 şey yaptığı anlamına gelmez mi? Birden fazla arabirim mirasınız varsa hiçbir fark olmadığını düşünüyorum. Düzenleme: Açıkça, birden fazla sınıf alt sınıf SRP ihlal, sonra birden (marker …

2
Scala'daki Özellikler “elmas hatasını” nasıl önler?
(Not: Başlıca nedenlerden dolayı 'problem' yerine 'hata' kullandım ..;)). Scala'daki Özellikler hakkında bazı temel okumalar yaptım. Java veya C # 'daki Arayüzlere benzerler, ancak bir yöntemin varsayılan olarak uygulanmasına izin verirler. Merak ediyordum: Bu, "elmas sorunu" na neden olamaz, bu yüzden birçok dil ilk etapta çoklu kalıtımdan kaçınır mı? Eğer …

5
Java'da çoklu kalıtım için uygun geçici çözüm (Android)
Birçok OO dilinde bir sorun olmaz, çoklu miras gerektiren kod düzgün bir uygulama ile kavramsal bir sorun var, ama proje Android için olduğu gibi, çoklu gibi bir şey yok extends. Böyle basit gibi farklı temel sınıflar, türetilmiş faaliyetlerin bir demet var Activity, TabActivity, ListActivity, ExpandableListActivity, vb Ayrıca ben içine yerden …

7
Çoklu kalıtım kullanım örnekleri
Java, dili basit tutmak için tasarım amacını ortadan kaldırdığı gerekçesiyle çoklu kalıtımı atlar . Java'nın (eko-sistemi ile) gerçekten "basit" olup olmadığını merak ediyorum. Python karmaşık değildir ve birden fazla mirasa sahiptir. Yani çok öznel olmadan sorum şu: Birden fazla kalıtımın yoğun kullanımını sağlamak için tasarlanmış bir koddan yararlanan tipik sorun …




1
Bağımlılık Enjeksiyonu için Python Yöntemi Çözüm Sırasını Kullanma - bu kötü mü?
Raymond Hettinger'in Pycon'unun "Süper Süper Düşünülmüş" konuşmasını izledim ve bir sınıf "ebeveyn" sınıfını belirleyici bir şekilde lineerleştiren Python'un MRO'sunu (Yöntem Çözünürlük Sırası) biraz öğrendim. Bağımlılık enjeksiyonu yapmak için, aşağıdaki kodda olduğu gibi bunu kendi yararımıza kullanabiliriz. Şimdi, doğal olarak, superher şey için kullanmak istiyorum ! Aşağıdaki örnekte Usersınıf, bağımlılıklarını her …

2
Python'un mirası “is-a” mirası mı yoksa kompozisyon tarzı mı?
Python'un çoklu kalıtıma izin verdiği göz önüne alındığında, Python'daki deyimsel kalıtım neye benziyor? Java gibi tek kalıtıma sahip dillerde, bir nesnenin başka bir nesnenin "a-a" olduğunu ve nesneler arasında (üst nesneden alt nesneye) kod paylaşmak istediğinizde kalıtım kullanılır. Örneğin, diyebiliriz Dogbir olduğunu Animal: public class Animal {...} public class Dog …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.