设计模式(七)适配器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/android_bar/article/details/80926291

  

模式角色:

1、源:已有的产品

2、目标:期望的产品

3、适配器:把已有的产品转化成期望的产品

一、类适配器(继承实现)

//源
public class Painter {

	public void drawPicture(){
		System.out.println("画画!");
	}
	
	public void showPicture(){
		System.out.println("办画展!");
	}
}
//目标
public interface IDesigner {

	public void drawPicture();
	
	public void thinkUE();
	
	public void showPicture();
}
//适配器
public class Designer extends Painter implements IDesigner{

	//1.继承一个的行为 drawPicture()
	
	@Override
	public void thinkUE() {//2.增加一个行为
		System.out.println("思考用户体验!");
	}
	
	@Override
	public void showPicture() {//3.修改一个行为
		System.out.println("办产品设计展!");
	}
}
public class Customer{  //消费者

	public static void main(String[] args) {
		
		Designer designer=new Designer();
		
		designer.drawPicture();
		designer.thinkUE();
		designer.showPicture();
	}

}

二、对象适配器(合成/聚合实现)

//源
public class Painter {

	public void drawPicture(){
		System.out.println("画画!");
	}
	
	public void showPicture(){
		System.out.println("办画展!");
	}
	
	public void sellPicture(){
		System.out.println("卖画!");
	}
}
//目标
public interface IDesigner {

	public void drawPicture();
	
	public void thinkUE();
	
	public void showPicture();
}
//适配器
public class Designer  implements IDesigner{

	private Painter painter=new Painter();
	
	@Override
	public void drawPicture() {//1.复用一个行为
		painter.drawPicture();
	}
	
	@Override
	public void thinkUE() {//2.增加一个行为
		System.out.println("思考用户体验!");
	}
	
	@Override
	public void showPicture() {//3.修改一个行为
		System.out.println("办产品设计展!");
	}

	//4.减少一个行为 sellPicture()
}
public class Customer{  //消费者

	public static void main(String[] args) {
		
		Designer designer=new Designer();
		
		designer.drawPicture();
		designer.thinkUE();
		designer.showPicture();
	}

}

猜你喜欢

转载自blog.csdn.net/android_bar/article/details/80926291