«composition» 태그된 질문

14
“상속보다 선호되는 구성”이라는이 개념은 어디에서 왔습니까?
지난 몇 달 동안, "상속에 대한 선호 구성"이라는 진언은 아무데도 생겨나 고 프로그래밍 커뮤니티 내에서 거의 일종의 밈이 된 것 같습니다. 그리고 그것을 볼 때마다 조금 미스터리합니다. 누군가가 "해머보다 드릴을 선호한다"고 말한 것과 같습니다. 내 경험상 구성과 상속은 서로 다른 유스 케이스를 가진 두 가지 도구이며, 상호 교환 가능하고 하나가 …

5
상속보다 구성을 선호해야하는 이유는 무엇입니까?
나는 항상 구성이 상속보다 선호된다는 것을 읽었습니다. 예를 들어, 상속 과는 달리 컴포지션을 사용하는 것을 옹호하는 것과 같은 종류 의 블로그 게시물은 다형성이 어떻게 이루어지는 지 알 수 없습니다. 그러나 사람들이 구성을 선호한다고 말할 때 실제로 구성과 인터페이스 구현의 조합을 선호한다는 느낌이 들었습니다. 상속없이 어떻게 다형성을 얻을 수 있습니까? 상속을 …

3
“상속성 구성”이“건조한 원칙”을 위반하고 있습니까?
예를 들어, 다른 클래스를 확장 할 클래스가 있다고 가정합니다. public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } 일부 서브 클래스 : public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { } 사실, 서브 클래스에는 재정의 할 메소드가 없으며 …

5
메소드를 호출 할 수 있다는 것을 정의하는 것보다 메소드를 정의하는 것이 어떻게 강력한 약속보다 우선 할 수 있습니까?
보낸 사람 : http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma : 10 년이 지난 후에도 여전히 그렇습니다. 상속은 행동을 바꾸는 멋진 방법입니다. 그러나 우리는 서브 클래스가 그것을 재정의하는 메소드가 호출되는 컨텍스트에 대해 쉽게 가정 할 수 있기 때문에 취하기 쉽다는 것을 알고 있습니다. 플러그인하는 서브 클래스 코드가 호출되는 암시 적 컨텍스트로 인해 기본 클래스와 …

2
“작성하지 않았다”의 의미는 무엇입니까?
많은 텍스트, 특히 함수형 프로그래밍 텍스트는 특정 CS 개념이 "구성하지 않는다"고 주장합니다 . 잠금은 작성하지 않고 모나드는 작성하지 않습니다. 이 구절의 의미를 정확하게 파악하는 데 어려움을 겪고 있습니다. 컴포지션을 생각할 때 함수 컴포지션 또는 객체 집계 ( "상속적인 컴포지션보다 선호 컴포지션")를 생각하지만 사람들이 여기에서이를 사용하는 의미는 아닙니다. 누군가 위의 두 …

8
“상속보다 작곡 선호”-서명 변경을 방어해야하는 유일한 이유는 무엇입니까?
이 페이지 는 다음과 같은 주장으로 상속에 대한 구성을 옹호합니다 (내 말로 표현). 서브 클래스에서 재정의되지 않은 수퍼 클래스의 메소드 서명 변경으로 인해 상속을 사용할 때 여러 곳에서 추가 변경이 발생합니다. 그러나 컴포지션을 사용할 때 필요한 추가 변경은 단일 위치에만 있습니다 : 서브 클래스. 이것이 실제로 상속보다 구성을 선호하는 유일한 …

2
래퍼에 많은 통과 함수를 작성하지 않으려면 어떻게해야합니까?
공통 기본 유형의 다른 클래스를 래핑하는 클래스가 있습니다. 기본 유형 인터페이스가 상당히 크기 때문에 많은 통과 함수를 작성해야합니다. 나는 이것을 피할 수있는 방법을 찾고 있습니다. 예를 들어 보자. Car / \ Volvo VolvoWithTrailer 이제 VolvoWithTrailer의 자동차 인터페이스에서 각각의 모든 함수를 구현하고 더 낮은 값을 반환하는 GetMaxSpeed ​​()를 제외하고 래핑 된 …

9
개발자가 컴퓨터 하드웨어의 내부 작동을 알아야합니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 나는 메모리가 할당되는 방법과 메모리 관리 (예를 들어 C에서 배울 수있는 것)가 아니라 하드웨어 측면과 컴퓨터 하드웨어의 각 …

3
상속보다는 구성
소프트웨어 엔지니어링을 가르치고 혼란스러워하는 상충되는 정보에 대비하려고합니다. 나는 OOP를 배우고 추상 클래스 / 인터페이스가 무엇인지, 그것들을 사용하는 방법을 배우고 있지만, 상속보다 구성을 선호해야한다는 것을 읽고 있습니다. 나는 한 클래스가 다른 클래스의 객체를 작성 / 생성하여 새로운 객체의 기능을 활용 / 상호 작용할 때 구성을 이해합니다. 그래서 내 질문은 ... 추상 …

4
손으로 의존성 주입은 구성과 다형성에 대한 더 나은 대안입니까?
먼저, 저는 엔트리 레벨 프로그래머입니다. 사실 저는 여름 내내 최종 캡 스톤 프로젝트로 AS 학위를 마치고 있습니다. 저의 새로운 직업에서, 제가해야 할 프로젝트가 없을 때 (팀을 더 많은 신입 사원으로 채우기 위해 기다리고 있습니다), 기다리는 동안 읽고 배우는 책을 받았습니다 – 일부 교과서, 기타 코드 완성과 같은 것은 아닙니다. 이 …

2
롭 파이크 (Rob Pike)가“가는 구성에 관한 것”이라고 말할 때, 그는 정확히 무엇을 의미합니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 에서 적은 기하 급수적으로 더 많이 C ++과 Java가 유형 계층 구조와 유형 분류 체계에 관한 것이라면 Go는 …

5
이 시나리오에서 구성 또는 상속을 선호해야합니까?
인터페이스를 고려하십시오. interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } 이 인터페이스는 다양한 모양 (예 : SineWaveGenerator및 SquareWaveGenerator)의 파도를 생성하는 여러 클래스로 구현됩니다 . SoundWave원시 사운드 데이터가 아닌 음악 데이터를 기반으로 클래스를 생성하고 싶습니다 . 비트 이름 (초가 아님)으로 메모의 이름과 길이를 수신하고 내부적으로 IWaveGenerator기능을 사용하여 SoundWave그에 따라 작성합니다 …

4
컴포지션을 통해 인터페이스를 구현하는 클래스에서 상용구 줄이기
나는 수업이 : A작은 클래스의 수의 합성이다 B, C하고 D. B, C및 D인터페이스를 구현 IB, IC및 ID각각. 이후 A의 모든 기능 지원 B, C및 D, A구현 IB, IC그리고 ID뿐만 아니라,하지만 많은이 불행하게도 리드의 구현에 재 라우팅A 이렇게 : interface IB { int Foo {get;} } public class B : IB …

1
간단한 구성 대신 약한 참조를 사용하는 것이 더 나은 상황이 있습니까?
있지만 자바 문서가 지정이 약한 참조는 기본적으로 매핑 정규화를 들어, 당신이 찾을 수있는 많은 , 많은 , 많은 의 WeakHashMap의 수명 동안 오브젝트 메타 데이터를 저장하기위한 완벽한이라고 진술 인터넷에서 사람들을. 그러나 아무도 이해하기 쉽고 적절한 모범 을 보이려고하지 않습니다 . WeakHashMap을 사용하여 객체를 추가하거나 메타 데이터 사운드를 저장하십시오. 다시 말해 …

9
체스 조각에 대한 상속 대 구성
이 스택 교환에 대한 빠른 검색은 일반적으로 일반적으로 상속보다 유연성이 높은 것으로 간주되지만 항상 프로젝트 등에 의존하며 상속이 더 나은 선택 인 경우가 있음을 보여줍니다. 각 조각에 메쉬, 다른 애니메이션 등이있는 3D 체스 게임을 만들고 싶습니다. 이 구체적인 예에서 두 가지 접근법 모두에 대한 사례를 주장 할 수있는 것처럼 보입니다. …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.