结构型模式1-适配器模式
结构型模式简介
结构型模式,分为类结构型模式和对象结构型模式。
创建型模式主要有7个:
- 适配器模式(adapter)
- 组合模式(composite)
- 桥接模式(bridge)
- 装饰模式(decorator)
- 外观模式(facade)
- 代理模式(proxy)
- 享元模式(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();
}
};
网友评论