C++设计模式--小结(composition)

发布时间: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:派生代理类用来简化对特定派生类的使用.

使用:
    实例化代理类, 然后使用.

 

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477