一、装饰模式说明:
所谓装饰模式,就是将某个对象披上一些华丽的外衣,在外界看来,它在不断的变化,而实质上没有任何的变化。就和美猴王一样,他可以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");
}
}