設計模式(七)介面卡
阿新 • • 發佈:2018-12-04
模式角色:
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();
}
}