디자인 모드 의 액세서리 모드
2767 단어 디자인 모드
어댑터 모드: 사용자 가 기대 하 는 인터페이스 로 인 터 페 이 스 를 맞 춥 니 다.즉, 외부 에서 원 하 는 인 터 페 이 스 를 정의 하여 호 환 되 지 않 아 함께 일 할 수 없 는 유형 들 을 함께 일 하 게 하 는 것 이다.일반적인 방법 은 자신의 인 터 페 이 스 를 이미 존재 하 는 클래스 에 감 싸 는 것 이다.소프트웨어 개발 에서 어떤 종 류 를 재 활용 하려 면 재 활용 해 야 하지만 환경 과 호 환 되 지 않 을 때 어댑터 모델 을 사용 해 야 한다. 구체 적 으로 말 하면 현재 시스템 의 행위 와 데이터 가 모두 정확 하지만 인터페이스 가 맞지 않 으 면 어댑터 모델 을 사용 해 야 한다.
2. 두 가지 어댑터 모드
(1) 대상 어댑터 모드: 이 어댑터 모드 에서 어댑터 는 패키지 의 클래스 를 수용 합 니 다. 즉, 어댑터 가 패키지 대상 의 실 체 를 호출 합 니 다.
(2) 클래스 어댑터 모드: 이러한 어댑터 모드 에서 어댑터 는 자신 이 실현 한 클래스 를 계승 합 니 다.
3. 예 를 들 어 (참여 사이트)
NBA 경기 에서 만약 에 외국 국적 의 스타 가 NBA 에 가입 하면 그 는 영 어 를 모 르 고 단기 적 으로 영 어 를 배 우 는 것 도 쉬 운 일이 아니다. NBA 의 다른 선수 들 도 그의 언어 를 모른다 면 이런 상황 에서 가장 좋 은 선택 은 당연히 통역 을 찾 는 것 이 비교적 편리 하 다.이 번역 은 바로 여기 서 언급 한 어댑터 이다. 그러면 NBA 외국 국적 의 스타, 예 를 들 어 야 오 밍, NBA 경기 에 가입 하 는 장면 은 코드 로 이 루어 진다.
public class AdapterMode{
//
public abstract class Player{
protected String name;
public Player(){}
public Player(String name){
this.name = name;
}
public abstract void attack();
}
//
public class NativeNBAPlayer extends Player{
public NativeNBAPlayer(String name){
super(name);
}
public void attack(){
System.out.println("I am native NBA player, I am attacking!");
}
}
//
public class ForeignNBAPlayer extends Player{
public ForeignNBAPlayer(){}
public ForeignNBAPlayer(String name){
super(name);
}
public void attack(){
System.out.println(" , !");
}
}
public class Translator{
private String name;
private Player foreignNBAPlayer;
public Translator(String name,Player foreignNBAPlayer){
this.name = name;
this.foreignNBAPlayer = foreignNBAPlayer;
}
public void translatorAttack(){
foreignNBAPlayer.attack();
}
}
//
public static void main(String[] args){
AdapterMode am = new AdapterMode();
Player nativeNBAPlayer = am.new NativeNBAPlayer("Kobe");
Player foreignNBAPlayer = am.new ForeignNBAPlayer(" ");
nativeNBAPlayer.attack();
Translator translator = am.new Translator(" ",foreignNBAPlayer);
translator.translatorAttack();
}
}
총화
1. 어댑터 모델 은 외부 에서 원 하 는 인 터 페 이 스 를 정의 하여 원래 관련 되 지 않 은 클래스 가 협동 작업 을 할 수 있 도록 한다.2. 재 활용 이 필요 한 유형 과 재 활용 환경의 차이 가 비교적 많 을 때 어댑터 모델 을 사용 하 는 것 을 고려 할 수 있다.3. 협동 작업 이 필요 한 쌍방 이 자신의 코드 를 수정 하지 않 거나 쌍방 이 수정 하 는 원가 가 비교적 클 때 어댑터 모델 을 사용 하 는 것 을 고려 할 수 있다.4. 어댑터 모델 은 고객 호출 에 통 일 된 인 터 페 이 스 를 제공 하여 고객 의 호출 을 더욱 간단 하고 직접적 이 며 치밀 하 게 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.