상속 이상의 구성이란 무엇입니까?
상속을 통한 구성은 응용 프로그램에서 개체간에보다 역동적이고 변경 가능한 관계를 설정하기 위해 개체 지향 프로그래밍 언어에서 사용되는 프로그래밍 방법입니다. 상속에 대한 컴포지션의 기본 형식은 다른 개체 내에 개체 인스턴스를 포함시키는 것입니다. 이것은 객체 지향 상속 방법과는 분명히 다르지만 많은 모델에서 동일한 목적으로 사용될 수 있습니다. 상속에 비해 컴포지션의 장점에는 합성 개체와 래퍼 개체 간의 경계가 잘 정의되어 있고 전체 상속 계층에 영향을주지 않고 개체의 구현을 변경하는 기능과 초기 프로그램 디자인을위한 덜 제한적인 프레임 워크가 있습니다. 그러나 복잡한 문제 중 일부는 직렬화에 어려움이 있고 대규모의 기존 프로그램에서 지나치게 복잡한 구조를 포함 할 수 있습니다.
객체 지향 프로그래밍에서 디자인 중에 설정해야 할 특성 중 하나는 다른 객체가 서로 관련되는 방식입니다. 상속은 객체 지향 프로그래밍의 중심 메커니즘으로, 하나의 객체가 부모의 모든 데이터와 메소드를 상속하여 자체 구현으로 추가, 수정 또는 확장 할 수 있습니다. 상속을 기반으로 한 디자인의 예는 자동차를 정의하고 모든 자동차의 일반적인 속성을 모델링하는 하나의 기본 클래스가있는 프로그램을 사용할 수 있습니다. 그런 다음 각 개별 브랜드의 자동차에 대한 클래스는 기본 클래스의 자손으로 만들어 지지만 엔진 크기, 연료 용량 또는 특정 브랜드의 자동차에 고유 한 기타 정보와 같은 특정 정보를 정의합니다.
컴포지션은 다른 객체 내에 객체 인스턴스를 포함시켜 표현됩니다. 일반 자동차를 정의하는 기본 클래스가있는 경우 특정 자동차 브랜드에 대한 서브 클래스를 작성하는 대신 기본 클래스는 자동차를보다 구체적으로 정의하는 다른 오브젝트의 인스턴스를 포함 할 수 있습니다. 이는 주요 자동차 등급에 엔진 유형과 연료 용량에 대한 객체를 포함 할 수 있음을 의미 할 수 있으며, 이는 등급을 사용하여 특정 브랜드의 자동차 인스턴스를 생성 할 때 설정됩니다.
상속에 컴포지션을 사용하면 기본 클래스에 포함 된 객체는 기본 클래스와 직접 관련이 없으므로 개발자가 개별 객체의 작동 방식을 자유롭게 변경할 수 있습니다. 상속에 대한 구성이 방지하는 데 도움이 될 수있는 문제는 상속 트리가 지나치게 깊을 수있는 상황입니다. 즉, 트리의 클래스를 수정하려면 트리 길이를 변경해야 할 수 있습니다. 모든 객체 지향 언어가 다중 상속을 지원하는 것은 아니며 상속 구성은이 제한을 해결하는 데 사용할 수있는 방법입니다.