php 어댑터 모드 소개

2795 단어 php어댑터 모드
요점:
1.어댑터 모델 은 주로'기 존 클래스 를 재 활용 하고 싶 지만 인 터 페 이 스 는 재 활용 환경 요구 와 일치 하지 않 는 상황'에 응용 되 고 남 겨 진 코드 재 활용,라 이브 러 리 이전 등에 매우 유용 하 다.
2.어댑터 모드 는 대상 어댑터 와 클래스 어댑터 두 가지 형식의 실현 구조 가 있 지만 클래스 어댑터 는'다 중 계승'의 실현 방식 을 사용 하여 좋 지 않 은 높 은 결합 을 가 져 왔 기 때문에 일반적으로 사용 하 는 것 을 추천 하지 않 습 니 다.대상 어댑터 는'대상 조합'방식 을 사용 하여 소나무 결합 정신 에 더욱 부합된다.
실현:
clip_image002
클래스 어댑터 모드 구성 도(계승)
clip_image004
 
대상 어댑터 모드 구성 도(조합)
(대상 어댑터 의 코드 구현)
Target:클 라 이언 트 가 사용 하 는 특정 영역 과 관련 된 인 터 페 이 스 를 정의 합 니 다.
public interface Target { void request();}
 
Adaptee:이미 존재 하 는 인터페이스 가 필요 합 니 다.
public class Adaptee{ public void specificRequest(){}}
 
Adapter:Adaptee 의 인터페이스 와 Target 인터페이스 에 적합 합 니 다.
public class Adapter implements Target{ public Adapter(Adaptee adaptee) { super(); this.adaptee = adaptee; } public void request() { adaptee.specificRequest(); } private Adaptee adaptee;}
 
적용 성:
1.시스템 은 기 존의 종 류 를 사용 해 야 하 는데 이런 인 터 페 이 스 는 시스템 의 수요 에 부합 되 지 않 는 다.
2.반복 적 으로 사용 할 수 있 는 종 류 를 만 들 려 면 서로 에 게 큰 관련 이 없 는 종 류 를 만 들 려 고 합 니 다.앞으로 도 입 될 수 있 는 종 류 를 포함 하여 함께 일 할 수 있 습 니 다.이런 소스 류 에 반드시 복잡 한 인터페이스 가 있 는 것 은 아니다.
3.(대상 어댑터 의 경우)디자인 에서 기 존 하위 클래스 의 인 터 페 이 스 를 여러 개 바 꿔 야 합 니 다.만약 에 클래스 의 어댑터 모델 을 사용한다 면 각 하위 클래스 에 대해 어댑터 를 만들어 야 합 니 다.이것 은 현실 적 이지 않 습 니 다.
효과 및 장단 점:
클래스 어댑터:
1.Adapte 와 Taget 을 구체 적 인 Adapter 클래스 로 일치 합 니 다.결 과 는 우리 가 하나의 클래스 와 모든 하위 클래스 를 일치 시 키 려 고 할 때,클래스 Adapter 는 업 무 를 감당 할 수 없습니다.
2.Adapter 는 Adaptee 의 일부 행 위 를 override(재 정의)할 수 있 습 니 다.Adapter 는 Adaptee 의 하위 클래스 이기 때 문 입 니 다.
대상 어댑터:
1.하나의 Adapter 와 여러 개의 Adaptee,즉 Adaptee 자체 와 모든 하위 클래스(하위 클래스 가 있다 면)가 동시에 작업 할 수 있 도록 합 니 다.Adapter 는 모든 Adaptee 에 한 번 에 기능 을 추가 할 수 있 습 니 다.
2.override(재정의)Adaptee 의 행동 을 어렵 게 합 니 다.만약 에 꼭 override Adaptee 의 방법 이 필요 하 다 면 먼저 Adaptee 의 하위 클래스 를 만들어 override Adaptee 의 방법 으로 한 다음 에 이 하위 클래스 를 진정한 Adaptee 소스 로 적합 하 게 할 수 밖 에 없다.

좋은 웹페이지 즐겨찾기