위임을위한 "유스 케이스"는 상속과 거의 동일합니다. 즉, 클래스 동작을 다형성 방식으로 확장합니다. 해당 작업
소프트웨어 공학에서
, 위임 패턴은 객체 지향 프로그래밍의 디자인 패턴이 어디 대신에 명시된 작업 중 하나를 수행의 목적은, 대의원 다음 wikipedia 위임을 정의하는 방법을
이입니다 연관된 도우미 객체에 연결합니다. 대리자로 알려진 도우미 객체가 위임자의 작업을 실행할 책임을 부여받는 Inversion of Responsibility가 있습니다. 위임 패턴은 구성 (집합이라고도 함), 믹스 인 및 측면과 같은 다른 소프트웨어 패턴의 기초가되는 기본 추상화 패턴 중 하나입니다.
분명히 위임 및 상속되지만, 가장 큰 일 사이에는 많은 차이가 IMO, 그 상속은 두 클래스 사이에 고정 (일명, 컴파일 시간) 관계이다 대표단 실행에가 정의 할 수있는 동안 - 시간 (이것을 지원하는 언어로). 반면에, 상속은 다형성에 대한 더 나은 지원을 제공합니다.
위임은 거대한 주제이므로 (상속이 있음) 많은 것을 읽을 수 있습니다. 결국, 위임이나 상속을 사용하는 것이 "is-a"또는 "has-a"관계를 원하는지 여부를 결정할 때 결정되므로 선택을위한 지침을 나열하는 것은 쉽지 않습니다.
내 코드가이 공통의 "성질을 가진 것으로 인식 될 수 균일 여기에 의미 균일 한 일련의 행동을 (제공 : 나를 위해
는 기본적으로 대리자를 만들 수있는 결정은 관찰에서 온다 ");
이러한 동작은 특정 동작 (예 : 대체 동작으로 대체 됨)에 대해 "사용자 지정"될 수 있습니다.
이것은 내 개인적인 견해이며 "위임"패턴을 식별하는 방법에 대한 설명입니다. 프로그래밍 원리가 리팩토링 원리에 의해 강력하게 알려졌다는 사실과 관련이 있습니다.
정말, IMO, 위임은 클래스의 "사용자 지정"지점을 정의하는 방법입니다. 예를 들어, 어떤 종류의 추상 워크 플로가있는 경우, 각 단계에서 특정 조건에 따라 어떤 조치를 취합니다. 나아가 그러한 구체적인 행동이 다른 종류의 다른 행동으로 대체 될 수 있다면 위임을 통한 재사용의 기회를 볼 수 있습니다.
희망이 도움이됩니다.