近日软件构造的实验中介绍了一种特殊的设计模式-,之所以说它特殊,是因为(装饰器)设计模式是一种自己(委派)自己的模式,同时正是因为这种属性使得它变得相对其他模式难以理解。
提示:需要先了解Delegation!!!
Decorator模式用于设计描述多种特性,类似于穿衣服,每件衣服会有不同的特性,比如保暖的最内层衣服,正常的打底衣服,以及外面用来装逼的风衣(划掉)。那可能有人马上想到,那直接继承啊,一个父类,几个子类,完全够应付了。确实,但是考虑到可能会有很多子类,而且可能每次你并不会用到所有的子类,比如夏天你可能只需要一条小裤衩,这样一个小裤衩也会是一个继承分支。这样一来就会导致组合爆炸的问题,即可能会产生一颗很大的继承树,以及大量的重复性代码,其可复用性很低,修改的代价高昂,即每次需要修改所有的同样代码的子类,或者增加新的子类十分麻烦。这样Decorator模式应运而生,即一种可以随意组合穿搭的模式。这种模式如何设计呢UML图如下:
仓促之间,如有错误欢迎指出。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91280 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!