模式定义
1.将抽象部分与它的实现部分分离,使它们都可以独立地变化。
2.对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式processing public abstract class Pen { protected Color color; public void setColor(Color color) { this.color = color; } public abstract void draw(String name); }细化抽象类
scala public class BigPen extends Pen { @Override public void draw(String name) { String penType = "大号毛笔绘制"; this.color.bepaint(penType,name); } } scala public class MiddlePen extends Pen { @Override public void draw(String name) { String penType = "中号毛笔绘制"; this.color.bepaint(penType,name); } } scala public class SmallPen extends Pen { @Override public void draw(String name) { String penType = "小号毛笔绘制"; this.color.bepaint(penType,name); } }接口
arduino public interface Color { //用于图形着色的方法 void bepaint(String penType,String name); }接口实现类
typescript public class Red implements Color { @Override public void bepaint(String penType, String name) { System.out.println(penType+"红色的"+name+"."); } } public class White implements Color { @Override public void bepaint(String penType, String name) { System.out.println(penType+"白色的"+name+"."); } } public class Green implements Color { @Override public void bepaint(String penType, String name) { System.out.println(penType+"绿色的"+name+"."); } } public class Blue implements Color { @Override public void bepaint(String penType, String name) { System.out.println(penType+"蓝色的"+name+"."); } } public class Black implements Color { @Override public void bepaint(String penType, String name) { System.out.println(penType+"黑色的"+name+"."); } }客户类
processing public class Client { public static void main(String[] args) { //堆代码 duidaima.com Color color; Pen pen; color = (Color) XMLUtilPen.getBean("color"); pen = (Pen) XMLUtilPen.getBean("pen"); pen.setColor(color); pen.draw("鲜花"); } }实现结果