[디자인 모델] 합성 복용 원칙
이 문 제 를 해결 하기 전에 어떤 그룹 을 계승 하 는 지 살 펴 보 자.
물 려 받 으 면 설명 이 많 지 않 습 니 다.합성 은 새로운 대상 에서 이미 있 는 대상 을 사용 하여 새로운 대상 의 일부분 으로 만 들 고 새로운 대상 으로 기 존 대상 을 위임 하여 호출 하 는 방법 이다.
다음은 실례 를 들 어 계승 과 합성 을 말씀 드 리 겠 습 니 다.
우선 클래스 A 를 정 의 했 습 니 다.
public class A {
public void create()
{
System.out.println(" ");
}
public void pricreate()
{
System.out.println(" A , ");
}
}
그리고 클래스 B, 계승 클래스 A 를 정 의 했 습 니 다.
public class B extends A{
}
그리고 클 라 이언 트 코드.
public class Composition {
public static void main(String[] args) {
A a =new A();
a.create();
a.pricreate();
B b=new B();
b.create();
b.pricreate();
}
다음은 그룹의 코드 입 니 다.
고 쳐 쓴 클래스 B
public class B {
private A a ;
public B(A a)
{
this.a=a;
}
public void create()
{
a.create();
}
}
개 작 된 클 라 이언 트
public static void main(String[] args) {
A a =new A();
a.create();
a.pricreate();
B b=new B(a);
b.create();
}
위의 예 를 통 해 우 리 는 계승 복용 을 사용 하면 시스템 의 봉인 성 을 파괴 할 수 있다 는 것 을 알 수 있다.상속 은 기류 의 실현 을 자 류 에 폭 루 하기 때문이다.만약 기류 에 변화 가 생 긴 다 면, 자 류 의 실현 도 변화 가 생 길 수 밖 에 없다.기류 로부터 물 려 받 은 실현 은 정적 이다.운행 할 때 변화 가 생 길 수 없고 충분 한 유연성 이 없다.그래서 계승 은 '백 박스 재 활용' 이 라 고도 합 니 다.
조합 이나 취 합 관 계 는 기 존의 대상 (구성원 대상 이 라 고도 할 수 있 음) 을 새로운 대상 에 포함 시 켜 새로운 대상 의 일부분 으로 만 들 수 있 기 때문에 새로운 대상 은 기 존의 대상 의 기능 을 호출 할 수 있다. 이렇게 하면 구성원 대상 의 내부 실현 디 테 일 을 새로운 대상 에 게 보이 지 않 게 할 수 있 기 때문에 이런 재 활용 은 '블랙박스' 재 활용 이 라 고도 부른다.
조합 / 집합 복용 과 계승 복용 의 비교
(1) 계승 장점: 새로운 실현 은 비교적 쉽다. 왜냐하면 기본 적 인 기능 의 대부분 은 계승 관 계 를 통 해 파생 류 에 자동 으로 들 어 갈 수 있 기 때문이다. 계승 을 수정 하거나 확장 하 는 것 이 비교적 쉽다. 단점: 계승 재 활용 파괴 포장 은 기 존의 실현 디 테 일 을 파생 류 에 노출 시 키 기 때문에 이런 재 활용 은 백 박스 재 활용 이 라 고도 부른다. 만약 기류 의 실현 에 변화 가 발생 한다 면 파생 류 의 실현 도 변화 가 발생 할 수 밖 에 없다. 기본 적 인 계승 에서 이 루어 진 실현 은 정태 적 인 것 으로 운행 할 때 변화 가 발생 할 수 없고 유연성 이 부족 하 다.(2) 합성 중합 장점: 새로운 대상 이 성분 대상 을 액세스 하 는 유일한 방법 은 성분 대상 의 인 터 페 이 스 를 통과 하 는 것 이다. 이러한 재 활용 은 블랙박스 재 활용 이다. 성분 대상 의 내부 디 테 일 은 새로운 대상 이 볼 수 없 기 때문이다. 이러한 재 활용 지원 포장; 이런 복용 에 필요 한 의존 이 비교적 적다. 모든 새로운 종 류 는 하나의 임무 에 초점 을 맞 출 수 있다. 이러한 재 활용 은 실행 시 동적 으로 진행 할 수 있 으 며, 새로운 대상 은 합성 / 취 합 관 계 를 사용 하여 새로운 책임 을 적당 한 대상 에 위임 할 수 있다. 단점: 이런 방식 으로 재 활용 해 만 든 시스템 은 관리 해 야 할 대상 이 많다. 재 활용 시 계승 보 다 는 합성 중합 을 우선 고려 해 야 하 며, 판정 은 다음 과 같은 네 개의 Coad 조건 으로 판단 된다. ① 파생 류 는 기류 의 특수 한 종류 로 기류 의 한 역할 이 아니 라 'Has - A' 와 'Is - A' 의 차 이 를 구분 해 야 한다. ② 파생 류 를 다른 종류의 파생 류 로 바 꿔 야 하 는 상황 은 영원히 발생 하지 않 는 다. ③ 파생 류 는 기본 클래스 를 교체 하거나 취소 하 는 책임 이 아니 라 기본 클래스 를 확장 하 는 책임 을 가진다.
④ 분류학 적 으로 의미 가 있 을 때 만 상속 을 사용 할 수 있다.
요약:
우 리 는 코드 에 대한 인식 이 끊임없이 높 아 지고 있다. 예전 에는 단지 통화 만 하면 된다 고 말 했 을 뿐, 이른바 전 체 를 도모 하지 않 는 사람 은 일 역 을 도모 할 수 없다 는 것 이다.현재 의 우 리 는 이미 점점 소프트웨어 공학 의 사상 에서 우리 의 소프트웨어 를 보기 시작 했다.우 리 는 소프트웨어 에 문서 와 프로그램 이 있어 야 한 다 는 것 을 알 았 다.디자인 모델 에 대한 학습 을 통 해 우 리 는 코드 를 쓰 는 것 이 마음대로 쓸 수 없다 는 것 을 알 게 되 었 다.우 리 는 앞으로 계획 을 세 워 야 한다. 왜냐하면 고객 의 수 요 는 끊임없이 변화 하고 있 기 때문에 전심전력으로 국민 을 위해 봉사 하 는 취지 도 우리 의 줄곧 의 취지 이다.그래서 어떻게 하면 국민 을 위해 성심성의껏 서 비 스 를 하 는 전제 에서 우리 의 절차 가 수요 가 변화 할 때 더욱 잘 유지 되 고 디자인 모델 은 우리 에 게 좋 은 범례 를 제공 할 수 있 습 니까?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.