«multiple-inheritance» 태그된 질문

9
다중 상속을 싫어하는“실제”이유가 있습니까?
나는 언어에서 다중 상속을 지원한다는 아이디어를 항상 좋아했습니다. 대부분의 경우 의도적으로 무시되었지만 "교체"라고 생각되는 것은 인터페이스입니다. 인터페이스는 단순히 다중 상속이 수행하는 모든 동일한 접지를 다루지 않으며, 이러한 제한으로 인해 더 많은 상용구 코드가 생길 수 있습니다. 내가 들어 본 유일한 기본 이유는 기본 클래스 의 다이아몬드 문제 입니다. 나는 그것을 …

1
믹스 인 또는 특성이 일반 다중 상속보다 어떻게 더 낫습니까?
C ++에는 일반 다중 상속이 있으며 많은 언어 디자인이 위험하다고 금지합니다. 그러나 Ruby 나 PHP와 같은 일부 언어는 이상한 구문을 사용하여 동일한 작업을 수행하고이를 믹스 인 또는 특성이라고합니다. 믹스 인 / 특성은 일반 다중 상속보다 남용하기가 어렵다는 것을 여러 번 들었습니다. 구체적으로 덜 위험하게 만드는 것은 무엇입니까? 믹스 인 / …

6
다중 상속이 단일 책임 원칙을 위반합니까?
두 개의 별개의 클래스에서 상속받은 클래스가 있다고해서 하위 클래스가 각 슈퍼 클래스에서 하나씩 적어도 2 가지를 자동으로 수행한다는 의미는 아닙니까? 인터페이스 상속이 여러 개인 경우 차이가 없다고 생각합니다. 편집 : 분명히, 여러 클래스를 서브 클래스 화하는 것이 SRP를 위반하면 여러 (마커 또는 기본 인터페이스 (예 : Comparable)) 인터페이스를 구현하면 SRP도 …

2
스칼라의 특성은 어떻게“다이아몬드 오류”를 피합니까?
(참고 : 명백한 이유로 제목에서 '문제'대신 '오류'를 사용했습니다 ..;)). Scala의 Traits에 대한 기본적인 내용을 읽었습니다. Java 또는 C #의 인터페이스와 유사하지만 메소드의 기본 구현을 허용합니다. 궁금한 점이 있는데, 이것이 "다이아몬드 문제"의 원인이 될 수없는 이유입니다. 이것이 많은 언어가 다중 상속을 먼저 ​​피하는 이유입니다. 그렇다면 스칼라는 이것을 어떻게 처리합니까?

5
Java (Android)에서 다중 상속에 대한 적절한 해결 방법
다중 상속이 필요한 것처럼 보이는 적절한 코드 구현에 대한 개념적 문제가 있습니다. 많은 OO 언어에서는 문제가되지 않지만 프로젝트는 Android 용이므로 다중과 같은 것은 없습니다 extends. 나는 그런 간단한 같은 다른 기본 클래스에서 파생 된 활동의 무리를 가지고 Activity, TabActivity, ListActivity, ExpandableListActivity, 등 또한 나는에 배치해야합니다 몇 가지 코드 조각이 onStart, …

7
다중 상속 사용 사례
Java는 언어를 단순하게 유지하려는 디자인 목표를 없애기 위해 여러 상속을 생략 합니다 . Java (에코 시스템 포함)가 실제로 "단순"한지 궁금합니다. 파이썬은 복잡하지 않으며 여러 상속이 있습니다. 그래서 너무 주관적이지 않으면 서 제 질문은 ... 다중 상속을 많이 사용하도록 설계된 코드에서 이점을 얻는 일반적인 문제 패턴은 무엇입니까?

2
C ++는 공통 공통 조상으로 다중 상속을 어떻게 처리합니까?
나는 C ++ 사람이 아니지만 이것에 대해 생각해야합니다. C ++에서는 다중 상속이 가능한데 왜 C #에서는 불가능합니까? (나는 다이아몬드 문제를 알고 있지만 여기서 내가 묻는 것은 아닙니다.) C ++는 여러 기본 클래스에서 상속 된 동일한 메소드 서명의 모호성을 어떻게 해결합니까? 왜 같은 디자인이 C #에 포함되지 않습니까?

4
병렬 계층-부분적으로 동일, 부분적으로 다릅니다
비슷한 질문이 많이 있습니다. 1 ,2 ,3 ,4 , 그러나이 질문에서는 그렇지 않은 것처럼 보이거나 솔루션이 최적으로 보이지도 않습니다. 다형성, 제네릭 및 믹스 인을 사용할 수 있다고 가정하면 일반적인 OOP 질문입니다. 사용되는 실제 언어는 OOP Javascript (Typescript)이지만 Java 또는 C ++에서 동일한 문제입니다. 나는 때때로 같은 행동 (인터페이스와 구현)을 공유하는 …

4
내 아키텍처의 다중 상속에 대한 대안 (실시간 전략 게임의 NPC)?
코딩은 실제로 그렇게 어렵지 않습니다 . 어려운 부분은 이해하기 쉽고 이해하기 쉬운 코드를 작성하는 것입니다. 그래서 더 나은 개발자를 원하고 견고한 아키텍처를 만들고 싶습니다. 비디오 게임에서 NPC 를 위한 아키텍처를 만들고 싶습니다 . Starcraft, Age of Empires, Command & Conquers 등과 같은 실시간 전략 게임입니다. 그래서 저는 다른 종류의 NPC를 …

1
의존성 주입을 위해 Python의 Method Resolution Order를 사용하는 것은 좋지 않습니까?
나는 Raymond Hettinger의 Pycon 강연 "슈퍼 고려 슈퍼"를보고 결정적인 방법으로 클래스 "부모"클래스를 선형화하는 Python의 MRO (Method Resolution Order)에 대해 조금 배웠습니다. 우리는 이것을 아래 코드와 같이 의존성 주입을 위해 우리의 이점으로 사용할 수 있습니다. 이제 자연스럽게 super모든 것에 사용하고 싶습니다 ! 아래의 예에서 User클래스에서 모두 상속하여 그것의 종속성을 선언 LoggingService하고 …

2
파이썬의 상속은“is-a”상속 스타일입니까 아니면 구성 스타일입니까?
파이썬이 다중 상속을 허용한다는 것을 감안할 때 파이썬의 관용 상속은 어떻게 생겼습니까? Java와 같은 단일 상속을 가진 언어에서 상속은 하나의 객체가 다른 객체의 "is-a"라고 말하고 객체간에 코드를 공유하려고 할 때 사용됩니다 (부모 객체에서 자식 객체로). 예를 들어, 당신은 말할 수 DogA는 Animal: public class Animal {...} public class Dog extends …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.