[꼭대기] 흔히 볼 수 있 는 디자인 모델 의 [어댑터 모드]

자주 사용 하 는 문제: 예 를 들 어 핸드폰, Mp3, 컴퓨터 등의 충전기, 커 넥 터 전환 은 모두 어댑터 에 해당 한다.이런 데이터 변환 은 바로 어댑터 모드 가 떠 오 릅 니 다.
package MyAdapter;
/**
 *@Description:      
 *@author Potter   
 *@date 2012-8-14   11:17:12
 *@version V1.0   
 */
public class App {

	public static void main(String[] args) {
		Adapter adapter=new Adapter();
		adapter.setPower(new Power(220));
		
		Device phone=new Phone();
		phone.ac(adapter);
		
	}

}

전원 클래스:
package MyAdapter;
/**
 *@Description:   
 *@author Potter   
 *@date 2012-8-14   11:20:35
 *@version V1.0   
 */
public class Power {
	int v;//  
	
	public Power(int v){
		this.v=v;
	}

}

어댑터 종류:
package MyAdapter;
/**
 *@Description: 
 *@author Potter   
 *@date 2012-8-14   11:18:10
 *@version V1.0   
 */
public class Adapter {
	
	Power power;
	
	/**             **/
	public int convert(Device device){
		if(device instanceof Mp3){
			power.v=20;
		}else if(device instanceof Phone){
			power.v=25;
		}
		return power.v;
	}
	
	public Power getPower() {
		return power;
	}

	public void setPower(Power power) {
		this.power = power;
	}

}

 
장치 추상 클래스:
package MyAdapter;
/**
 *@Description: 
 *@author Potter   
 *@date 2012-8-15   09:59:58
 *@version V1.0   
 */
public abstract class Device {
	/**  
	 * @param p   
	 */
	public abstract void ac(Adapter adapter);

}

세부 클래스 MP3:
package MyAdapter;
/**
 *@Description: 
 *@author Potter   
 *@date 2012-8-14   11:18:39
 *@version V1.0   
 */
public class Mp3 extends Device{

	@Override
	public void ac(Adapter adapter) {
		System.out.println("map3   ,   "+adapter.convert(this)+"V");
	}

}

구체 적 인 유형 전화:
package MyAdapter;
/**
 *@Description: 
 *@author Potter   
 *@date 2012-8-14   11:18:29
 *@version V1.0   
 */
public class Phone extends Device{

	@Override
	public void ac(Adapter adapter) {
		System.out.println("    ,   "+adapter.convert(this)+"V");
	}

}

인쇄 결과:
휴대폰 충전, 전압 25V
 
이것 은 제 가 어댑터 모델 에 대한 이해 입 니 다. 여러분 이 동생 이 무슨 말 을 잘못 했다 고 생각 하 시 면 지침 을 주 십시오.감사합니다.

좋은 웹페이지 즐겨찾기