装饰器模式是一种结构型模式。
举个例子,比如说我们现在有一些没有皮肤的英雄,我们可以给这些英雄加点服饰,比如说戴个帽子,穿双鞋子等

简单来讲就是采用聚合方式,装饰器中聚合Hero,执行hero的方法的同时进行添加所需的装饰。
示例代码:
public abstract class Hero {
public abstract void showSkin();
}
public abstract class HeroDecorator extends Hero {
public Hero hero;
public HeroDecorator(Hero hero) {
this.hero = hero;
}
}
public class HatDecorator extends HeroDecorator {
public HatDecorator(Hero hero) {
super(hero);
}
@Override
public void showSkin() {
super.hero.showSkin();
System.out.println("戴帽子");
}
}
public class ShoesDecorator extends HeroDecorator {
public ShoesDecorator(Hero hero) {
super(hero);
}
@Override
public void showSkin() {
super.hero.showSkin();
System.out.println("穿鞋子");
}
}
public class FuWang extends Hero {
@Override
public void showSkin() {
System.out.println("展示斧王装饰");
}
}
public class Main {
public static void main(String[] args) {
FuWang fw = new FuWang();
HatDecorator hatDecorator = new HatDecorator(fw);
ShoesDecorator sd = new ShoesDecorator(hatDecorator);
sd.showSkin();
}
}
本文介绍了一种结构型设计模式——装饰器模式,并通过一个具体的英雄角色装饰实例详细展示了该模式的应用方式。装饰器模式允许在不修改原始类的基础上,通过组合的方式为对象添加新的职责。
1572

被折叠的 条评论
为什么被折叠?



