1. 程式人生 > >設計模式(七)介面卡

設計模式(七)介面卡

  

 

 

模式角色:

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();
	}

}