设计模式笔记之装饰模式
1、先说说装饰模式定义。装饰模式:动态的给一个对象添加一些额外的职责,就添加功能来说,装饰模式比生成子类更为灵活。UML类如如下。(PS: UML图来自《大话设计模式》一书)
2、我们酋篚靶高需要一个面饼,煎好之后,放上火腿肠,里脊肉,煎蛋, 辣酱然后裹上就吃。这个程序员版本的煎饼果子就这样啦,当然我们还可以加其它的,比如说蕃茄,油条什么的。(PS:本人非天津人,喜欢吃自己口味的非正宗煎饼果子)
3、就是说,对一个煎饼果子来说,其实只要有个饼就可以吃了,其它都是后面添加的。这里抽象成两个类, 面饼(Pancake)和添加食品(Addition),分别对应装饰模式中Component和Decorator。这里面饼其实也可能是红豆面饼,小麦面饼等。整个设计UML类图如下。
4、建立Pancake接口和具体红豆小麦面饼类WheatPancake和RedBeanPancake。
5、创建辅料添加类(Addition), 该类装饰面饼,实现Pancake接口同时包含一个Pancake实例。
6、创建具体辅料添加类:FriedEggAddition,MeatAddition和HuotuiAddition,分别代表煎蛋,里脊和火腿肠,继承于Addition类。
7、创建测试方法,运行获得测试结果。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。