赞
踩
装饰器模式
(Decorator Pattern)属于结构型模式,允许向一个现有的对象添加新的功能,同时又不改变其结构。
装饰器模式
通过将对象包装在装饰器类中,以便动态地修改其行为。
装饰器模式包含四个核心角色:
package blog;
/**
* 厨师
*/
public interface Chef {
void cook();
}
package blog;
/**
* 中国厨师
*/
public class ChineseChef implements Chef {
@Override
public void cook() {
System.out.println("制作中餐");
}
}
package blog;
/**
* 西方厨师
*/
public class EuropeanChef implements Chef{
@Override
public void cook() {
System.out.println("制作西餐");
}
}
package blog;
/**
* 厨师装饰器
*/
public abstract class ChefDecorator implements Chef {
protected Chef chef;
public ChefDecorator(Chef chef) {
this.chef = chef;
}
}
package blog; /** * 厨师摆盘装饰器 */ public class PlateChefDecorator extends ChefDecorator{ public PlateChefDecorator(Chef chef) { super(chef); } @Override public void cook() { chef.cook(); plate(); } private void plate() { if (chef instanceof ChineseChef) { System.out.println("中式摆盘"); } else { System.out.println("西式摆盘"); } } }
package blog;
public class DecoratorDemo {
public static void main(String[] args) {
ChineseChef chineseChef = new ChineseChef();
PlateChefDecorator plateChineseChef = new PlateChefDecorator(chineseChef);
plateChineseChef.cook();
EuropeanChef europeanChef = new EuropeanChef();
PlateChefDecorator plateEuropeanChef = new PlateChefDecorator(europeanChef);
plateEuropeanChef.cook();
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。