模式角色:
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();
}
}