本文共 1129 字,大约阅读时间需要 3 分钟。
装饰器模式是一种结构型模式。
举个例子,比如说我们现在有一些没有皮肤的英雄,我们可以给这些英雄加点服饰,比如说戴个帽子,穿双鞋子等
简单来讲就是采用聚合方式,装饰器中聚合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(); }}
转载地址:http://jhcdi.baihongyu.com/