美文网首页我爱编程
#结构型模式1-适配器模式(Adapter)

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

作者: sunblog | 来源:发表于2018-04-16 22:57 被阅读0次

结构型模式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)

适用性

  • 想使用一个已经存在的类,而它的接口不符合你的需求
  • (仅限于对象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();
    }
};

相关文章

网友评论

    本文标题:#结构型模式1-适配器模式(Adapter)

    本文链接:https://www.haomeiwen.com/subject/wayykftx.html