发布时间:2025-12-10 11:33:36 浏览次数:6
combination(class object combination):接口组合, 对象组合.
1) 适配器模式(Adapter Pattern):内置"组合"
实现:
1) cAMPlayer:第一类接口;
cAMPlayer*:第一类接口的具体实现;
2) cMPlayer:第二类接口;
cMPlayer*:第二类接口的具体实现;
NOTICE:cMPlayer接口需要兼容cAMPlayer, 需要组合封装一个实现;
使用:
直接使用cMPlayer;
2) 桥接模式(Bridge Pattern):传入"组合"
实现:
1) cColor:第一类接口;
cColor*:第一类接口的具体实现;
2) cShape:第二类接口;
cShape*:第二类接口的具体实现;
NOTICE:cColor被创造并传入cShape(还可"桥接"其它接口进来)
使用:
cShape"桥接"被创造的cColor;
3) 过滤器模式(Filter、Criteria Pattern):传入"组合"
实现:
1) cPerson:待过滤的数据;
2) cCriteria:条件过滤接口;
cCriteria*:条件过滤的具体实现;
NOTICE:cCriteria的具体实现可以相互组合, 形成在逻辑上更加复杂的过滤处理接口;
使用:
按需创建cCriteria, 过滤批量的cPerson.
4) 组合模式(Composite Pattern):"内置"组合"
实现:
cEmployee:可递归的数据结构;
使用:
自下而上地自行构造cEmployee层次结构;
5) 装饰器模式(Decorator Pattern):传入"组合"
实现:
1) cDecorator:增强功能的接口;
cDecorator*:增强功能的具体实现;
2) cShape:需要被增强功能的接口;
cShape*:具体的接口;
NOTICE:传入/组合 而非 继承的方式来增强接口, 可大幅度削减类的数量;
使用:
传入cShape, 创建出更强的实例化对象cDecorator;
6) 外观模式(Facade Pattern):内置"组合"
实现:
1) cShape:待组合对象的抽象;
cShape*:待组合对象的具体实现;
2) cMaker:为所有组合对象对外提供访问接口;
使用:
用cMaker访问所有组合对象
7) 享元模式(Flyweight Pattern):内置"组合"
实现:
1) cShape:抽象接口;
cShape*:具体实现的接口;
2) cFactory:按照传入参数color来区别对象, 如果已经创建过, 那就返回已有的, 否则创建一个新的.
使用:
传入参数, 获取被创建的对象(创建尽可能少的对象)
8) 代理模式(Proxy Pattern):内置"组合"
实现:
1) cImage:抽象类;
cImageReal:派生类, 不可直接实例化;
cImageProxy:派生代理类, 可直接实例化用来代理cImageReal;
NOTICE:派生代理类用来简化对特定派生类的使用.
使用:
实例化代理类, 然后使用.