装饰模式,简单的来说,就是内部你先组装好,最后展示给我的是一个OK的形象。所以组装的过程是比较重要的。
理论上,也可以通过增加子类来实现不同的功能。但是如果,通过增加“职责”来实现别的功能的话,肯定比生成子类灵活一些吧。
如果按照以前的逻辑的话,是以下模式:
人---------小明
服装----------衬衫、皮鞋、裤子等
不过这种情况,是把所有的动作一一展示出来,而非组装起来。
======================================================
如果按照装饰模式设计的话,是以下模式:
小明-----服装-------衬衫、皮鞋、裤子等
代码设计:实例化得到小明,实例化“衬衫”A装饰小明,实例化“皮鞋”B装饰“衬衫”A,实例化“裤子”C装饰“皮鞋”B,最后执行裤子的行为,一层包装一层
总之,装饰模式这一块,还需要不断地理解。感觉还是比较欠火候