装饰模式设计出来的目的就是为了更方便的对现有类进行功能的添加,同时又不改变现有类。
即,我是不永恒不变的,为了现在满足我某个功能,这个功能大多数时候我是不需要的,你让我自己去学习这个功能,我又不常用我学它干什么呢?没有必要改变自己嘛。就像为了在冬天保暖,我没有必要长一身毛,没有必要养一身肥肉?对吧。
为了让我保暖,我就在冬天三个月时间里,穿棉衣棉裤就ok了。来年春暖花开,我再脱下棉袄,我还是我,一点没变。没长毛,没厚膘。
我就可以理解为现有类,棉衣棉袄就像我需要的功能。记住,装饰模式是为了方便快捷的增加我需要的方法,功能。
上课笔记
模式动机:
对客户透明的方式地给一个对象附加上更多的责任,
在不需要创造更多子类的情况下,将对象的功能加以扩展。
缺点:
产生很多小对象
装饰比继承容易出问题,排错很困难,寻找错误,要逐级排查,繁琐。