1. 装饰,顾名思义,在不改变原有功能的基础上扩展对象的功能,也要求客户端透明,但是常常半透明。
2. 多重继承的替代品,利用1-2层继承,通过子类的水平扩展,给父类附加其他功能
3. 透明实现,就是暴露给客户端的接口方法与装饰前一样,这时扩展的功能都是通过子类的私有方法实现,在原有共有方法里调用;
4. 半透明就是增加了其他公开的方法,这是有点像适配器模式
5. (抽象)装饰类(这里的抽象只是设计意义)聚合关联的(抽象)构件的实例变量,需要定义为protected,一边具体装饰类中可以调用
6.重要的类图: