매일 디자인 모드 를 배 워 요. - 어댑터 모드.
2660 단어 디자인 모드
영문
Adapter Pattern
정의.
하나의 인 터 페 이 스 를 고객 이 원 하 는 다른 인터페이스 로 전환한다.어댑터 는 원래 인터페이스 가 호 환 되 지 않 는 클래스 를 무 간 으로 합작 할 수 있 도록 합 니 다.
이해 하 다.
1. 이 모드 에는 대상, 어댑터, 피 어댑터 가 3 개 있 습 니 다.
2. 대상: 고객 이 사용 하고 자 하 는 인터페이스 대상, 우 리 는 다른 인 터 페 이 스 를 대상 으로 위장 하고 싶 습 니 다.
3. 어댑터: 대상 과 피 어댑터 의 중간 구성 요소 입 니 다. 이 클래스 에는 피 어댑터 가 저장 되 어 있 지만 대상 을 계승 합 니 다.대외 적 으로 그 는 목표 대상 이지 만 자신 내부 에 서 는 적임자 의 방법 으로 목표 대상 으로 위장 했다.
4. 피 어댑터: 고객 이 해당 대상 을 대상 으로 바 꾸 려 면 어댑터 는 해당 유형의 방법 을 적절하게 호출 하여 위장 효 과 를 얻는다.
코드
목표 대상
public interface Duck {
public void quack();
public void fly();
}
목표 대상 의 진정한 실현 류
public class MallardDuck implements Duck {
@Override
public void quack() {
System.out.println("Quack!");
}
@Override
public void fly() {
System.out.println("I'm flying");
}
}
피 적임자
public interface Turkey {
public void gobble();
public void fly();
}
피 적임자 의 실현 류
public class WildTurkey implements Turkey {
@Override
public void gobble() {
System.out.println("Gobble gobble");
}
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("I'm flying a short distance");
}
}
터키 대상 을 터키 대상 으로 바 꾸 려 는 어댑터
public class TurkeyAdapter implements Duck {
Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
@Override
public void quack() {
// TODO Auto-generated method stub
turkey.gobble();
}
@Override
public void fly() {
// TODO Auto-generated method stub
for(int i=0;i<5;i++){
turkey.fly();
}
}
}
테스트 프로그램
public class DuckTestDrive {
public static void main(String[] args) {
MallardDuck duck = new MallardDuck();
Turkey turkey = new WildTurkey();
Duck turkeyAdapter = new TurkeyAdapter(turkey);
System.out.println("The turkey says ...");
turkey.gobble();
turkey.fly();
System.out.println("The duck says ...");
duck.quack();
duck.fly();
System.out.println("The turkeyAdapter says ...");
turkeyAdapter.quack();
turkeyAdapter.fly();
}
}
출력
The turkey says ...
Gobble gobble
I'm flying a short distance
The duck says ...
Quack!
I'm flying
The turkeyAdapter says ...
Gobble gobble
I'm flying a short distance
I'm flying a short distance
I'm flying a short distance
I'm flying a short distance
I'm flying a short distance
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.