我爱编程

#结构型模式1-适配器模式(Adapter)

2018-04-16  本文已影响0人  sunblog

结构型模式1-适配器模式

结构型模式简介

结构型模式,分为结构型模式和对象结构型模式。

创建型模式主要有7个:

  1. 适配器模式(adapter)
  2. 组合模式(composite)
  3. 桥接模式(bridge)
  4. 装饰模式(decorator)
  5. 外观模式(facade)
  6. 代理模式(proxy)
  7. 享元模式(flyweight)

适配器模式Adapter

意图

将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

问题思考

ListView是一个包含子view的view,其每个子view包含了一些数据,这些数据来自一个list。listview和list是两个完全不相干的类。(Android中的RecyclerView和RecyclerView.Adapter)

适用性

类图1

对象适配器(转发请求给对象)

adapter_object

实现1

class Target {
public:
    virtual void Request() = 0;
};

class Adaptee {
public:
    void SpecificRequest();
};

class Adapter: public Target {
public:
    
    void Request() override {
        mAdaptee->SpecificRequest();
    }

private:
    Adaptee *mAdaptee = nullptr;
};

类图2

类适配器(多重继承,不推荐

adapter_class

实现2

class Target {
public:
    virtual void Request() = 0;
};

class Adaptee {
public:
    void SpecificRequest();
};

class Adapter: public Target, private Adaptee {
public:
    void Request() override {
        SpecificRequest();
    }
};

上一篇 下一篇

猜你喜欢

热点阅读