[디자인 모델] 합성 복용 원칙

우 리 는 대상 을 대상 으로 하 는 세 가지 기본 적 인 특징 이 포장, 계승 과 다 형 이라는 것 을 안다.대상 을 향 한 상속 의 중요성 을 알 수 있다.그러나 디자인 모델 에서 우 리 는 이런 원칙 을 지 켜 야 한다. 이 원칙 은 우리 로 하여 금 가능 한 한 계승 을 적 게 사용 하도록 해 야 한다.왜 그런 가?
        이 문 제 를 해결 하기 전에 어떤 그룹 을 계승 하 는 지 살 펴 보 자.
        물 려 받 으 면 설명 이 많 지 않 습 니 다.합성 은 새로운 대상 에서 이미 있 는 대상 을 사용 하여 새로운 대상 의 일부분 으로 만 들 고 새로운 대상 으로 기 존 대상 을 위임 하여 호출 하 는 방법 이다.
        
        다음은 실례 를 들 어 계승 과 합성 을 말씀 드 리 겠 습 니 다.
        우선 클래스 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' 의 차 이 를 구분 해 야 한다.    ② 파생 류 를 다른 종류의 파생 류 로 바 꿔 야 하 는 상황 은 영원히 발생 하지 않 는 다.    ③ 파생 류 는 기본 클래스 를 교체 하거나 취소 하 는 책임 이 아니 라 기본 클래스 를 확장 하 는 책임 을 가진다.
    ④ 분류학 적 으로 의미 가 있 을 때 만 상속 을 사용 할 수 있다.
요약:
          우 리 는 코드 에 대한 인식 이 끊임없이 높 아 지고 있다. 예전 에는 단지 통화 만 하면 된다 고 말 했 을 뿐, 이른바 전 체 를 도모 하지 않 는 사람 은 일 역 을 도모 할 수 없다 는 것 이다.현재 의 우 리 는 이미 점점 소프트웨어 공학 의 사상 에서 우리 의 소프트웨어 를 보기 시작 했다.우 리 는 소프트웨어 에 문서 와 프로그램 이 있어 야 한 다 는 것 을 알 았 다.디자인 모델 에 대한 학습 을 통 해 우 리 는 코드 를 쓰 는 것 이 마음대로 쓸 수 없다 는 것 을 알 게 되 었 다.우 리 는 앞으로 계획 을 세 워 야 한다. 왜냐하면 고객 의 수 요 는 끊임없이 변화 하고 있 기 때문에 전심전력으로 국민 을 위해 봉사 하 는 취지 도 우리 의 줄곧 의 취지 이다.그래서 어떻게 하면 국민 을 위해 성심성의껏 서 비 스 를 하 는 전제 에서 우리 의 절차 가 수요 가 변화 할 때 더욱 잘 유지 되 고 디자인 모델 은 우리 에 게 좋 은 범례 를 제공 할 수 있 습 니까?

좋은 웹페이지 즐겨찾기