分类: Java
2011-12-05 09:09:14
装饰模式:
装饰模式以对客户端透明的方式扩展对象得到功能,是继承关系的一个替代方案。
装饰模式角色:
抽象构件角色: 给出一个抽象接口,以规范准备接收附加责任的对象。
具体构件角色: 定义一个将要接受附加责任的类。
装饰角色: 持有一个构件对象的实例,并定义一个与抽象构件接口一致的接口。
具体装饰角色: 负责给构件对象 增加 附加的责任。
装饰模式优缺点:
1. 装饰模式比继承更灵活
2. 通过使用不同的具体装饰类以及这些装饰类的排列组合,能创造许多不同行为的组合。
3. 由于装饰模式的灵活特性,也同时意味着比继承更加容易出错。
4. 使用装饰模式,可以比使用继承关系需要较少数目的类,便于设计,但是,会产生更多的对象,会使得查错变得困难。