Pytania otagowane jako multiple-inheritance

9
Czy istnieje jakiś „prawdziwy” powód, dla którego nienawidzono wielokrotnego dziedziczenia?
Zawsze podobał mi się pomysł obsługiwania wielokrotnego dziedziczenia w jednym języku. Najczęściej jednak jest celowo zapominany, a domniemanym „zamiennikiem” są interfejsy. Interfejsy po prostu nie obejmują tego samego gruntu, co wielokrotne dziedziczenie, a to ograniczenie może czasami prowadzić do większej liczby kodów wzorcowych. Jedynym podstawowym powodem, dla którego kiedykolwiek to …

1
W jaki sposób mixiny lub cechy są lepsze od zwykłego wielokrotnego dziedziczenia?
C ++ ma zwykłe wielokrotne dziedziczenie, wiele projektów językowych zabrania go jako niebezpiecznego. Ale niektóre języki, takie jak Ruby i PHP, używają dziwnej składni, aby robić to samo i nazywać to mixins lub cechami. Słyszałem wiele razy, że miksy / cechy są trudniejsze do nadużywania niż zwykłe wielokrotne dziedziczenie. Co …

6
Czy wielokrotne dziedziczenie narusza zasadę pojedynczej odpowiedzialności?
Jeśli masz klasę, która dziedziczy z dwóch odrębnych klas, czy nie oznacza to, że twoja podklasa automatycznie (przynajmniej) 2 rzeczy, po jednej z każdej nadklasy? Uważam, że nie ma różnicy, jeśli masz wiele interfejsów dziedziczenia. Edycja: Dla jasności uważam, że jeśli podklasowanie wielu klas narusza SRP, to implementacja wielu interfejsów …

2
W jaki sposób cechy w Scali unikają „błędu diamentu”?
(Uwaga: Użyłem „błędu” zamiast „problemu” w tytule z oczywistych powodów…;)). Zrobiłem kilka podstawowych lektur na temat cech w Scali. Są one podobne do interfejsów w Javie lub C #, ale pozwalają na domyślną implementację metody. Zastanawiałem się: czy nie może to spowodować „problemu z diamentem” i dlatego wiele języków w …

5
Prawidłowe obejście dla wielokrotnego dziedziczenia w Javie (Android)
Mam problem koncepcyjny z poprawną implementacją kodu, który wydaje się wymagać wielokrotnego dziedziczenia, co nie byłoby problemem w wielu językach OO, ale ponieważ projekt dotyczy Androida, nie ma czegoś takiego jak wielokrotność extends. Mam kilka działań, pochodzący z różnych klas bazowych, takich jak proste Activity, TabActivity, ListActivity, ExpandableListActivity, itd. Również …

7
Przypadki użycia wielokrotnego dziedziczenia
Java pomija wielokrotne dziedziczenie, ponieważ pomija cel projektowy polegający na uproszczeniu języka . Zastanawiam się, czy Java (ze swoim ekosystemem) jest naprawdę „prosta”. Python nie jest złożony i ma wielokrotne dziedziczenie. Więc nie będąc zbyt subiektywnym, moje pytanie brzmi ... Jakie są typowe wzorce problemów, które korzystają z kodu zaprojektowanego …



4
Alternatywy dla wielokrotnego dziedziczenia mojej architektury (NPC w grze strategicznej w czasie rzeczywistym)?
Kodowanie nie jest trudne w rzeczywistości . Trudność polega na pisaniu kodu, który ma sens, jest czytelny i zrozumiały. Chcę więc uzyskać lepszego programistę i stworzyć solidną architekturę. Więc chcę zrobić stworzyć architekturę NPC w grze wideo. Jest to gra strategiczna w czasie rzeczywistym, taka jak Starcraft, Age of Empires, …

1
Korzystanie z metody rozpoznawania kolejności w Pythonie dla wstrzykiwania zależności - czy to źle?
Widziałem, jak Raymond Hettinger Pycon mówi „Super uważany za super” i dowiedziałem się trochę o MRO Pythona (Order Resolution Order), który deterministycznie interpretuje klasy „nadrzędne”. Możemy to wykorzystać na naszą korzyść, tak jak w poniższym kodzie, aby wykonać wstrzyknięcie zależności. Więc teraz oczywiście chcę używać superdo wszystkiego! W poniższym przykładzie …

2
Czy dziedziczenie Pythona jest stylem dziedziczenia „czy jest”, czy stylem kompozytorskim?
Biorąc pod uwagę, że Python pozwala na wielokrotne dziedziczenie, jak wygląda dziedziczenie idiomatyczne w Pythonie? W językach z pojedynczym dziedziczeniem, takich jak Java, dziedziczenie byłoby stosowane, gdy można by powiedzieć, że jeden obiekt „jest-a” innego obiektu i chcesz współdzielić kod między obiektami (od obiektu nadrzędnego do obiektu podrzędnego). Na przykład …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.