매일 디자인 모드 를 배 워 요. - 어댑터 모드.

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

좋은 웹페이지 즐겨찾기