一、装饰模式说明:
所谓装饰模式,就是将某个对象披上一些华丽的外衣,在外界看来,它在不断的变化,而实质上没有任何的变化。就和美猴王一样,他可以72变,变化成狗、猫或者鱼等等。但是他终究还是一只猴。可以用下图来描述:
二、Java语言描述:
package com.solid.pattern; /** * 装饰模式(装饰抽象类) * @author solid */ public abstract class Monkey { public abstract void change(); } package com.solid.pattern; /** * 装饰模式(具体被装饰类) * @author solid * */ public class MonkeySelf extends Monkey { public void change() { System.out.println("===monkeyself change==="); } } package com.solid.pattern; /** * 装饰模式(装饰抽象类) * @author solid * */ public abstract class MonkeyChange extends Monkey { private Monkey monkey; public MonkeyChange(Monkey monkey) { this.monkey = monkey; } public abstract void change(); } package com.solid.pattern; /** * 装饰模式(具体装饰类二) * @author solid */ public class Fish extends MonkeyChange { public Fish(Monkey monkey) { super(monkey); } public void change() { System.out.println("change fish"); } } package com.solid.pattern; /** * 装饰模式(具体装饰类一) * @author solid */ public class Room extends MonkeyChange { public Room(Monkey monkey) { super(monkey); } public void change() { System.out.println("change room"); } }