有域名就可以做网站么,公司网页设计推广服务公司,上海网站建设公司电话,郑州商城网站设计目录
1、适配器模式#xff08;Adapter Pattern#xff09;含义
2、适配器模式应用场景
3、适配器模式的UML图学习
4、C实现适配器模式的示例 1、适配器模式#xff08;Adapter Pattern#xff09;含义
将一个接口转换为客户端所期待的接口#xff0c;从而使两个接口…目录
1、适配器模式Adapter Pattern含义
2、适配器模式应用场景
3、适配器模式的UML图学习
4、C实现适配器模式的示例 1、适配器模式Adapter Pattern含义
将一个接口转换为客户端所期待的接口从而使两个接口不兼容的类可以在一起工作
适配器模式通常用于将不兼容的类组合在一起工作或将旧代码与新代码集成在一起。 适配器模式还有个别名叫Wrapper包装器顾名思义就是将目标类用一个新类包装一下相当于在客户端与目标类直接加了一层。 IT世界有句俗语没有什么问题是加一层不能解决的 2、适配器模式应用场景
1当需要使用一个现存的类但它提供的接口与我们系统的接口不兼容而我们还不能修改它时
2当多个团队独立开发系统的各功能模块然后组合在一起但由于某些原因事先不能确定接口时。
3、适配器模式的UML图学习 适配器模式有3个角色
1Target是一个接口是客户端使用的目标接口
2Adaptee是我们想要的接口与Target不兼容的类这个可以是一个接口或类
3Adapter适配器类此模式的核心。它需要实现目标接口Target而且必须引用Adaptee因为我们要在此类包装Adaptee的功能
4、C实现适配器模式的示例 #include iostream
#include string// 目标接口
class Target
{
public:virtual void request() const 0;
};// 源接口
class Adaptee
{
public:void specificRequest() const {std::cout Adaptee: specificRequest std::endl;}
};// 类适配器
class Adapter : public Target, private Adaptee
{
public:void request() const override {specificRequest();}
};int main()
{// 使用适配器调用目标接口Target* target new Adapter();target-request();delete target;return 0;
}在上述示例中我们首先定义了目标接口Target其中包含了一个纯虚函数request()。然后我们定义了源接口Adaptee其中包含了一个具体函数specificRequest()。
接着我们通过类适配器的方式实现了适配器类Adapter它继承自目标接口并私有继承源接口。在适配器类中我们实现了目标接口的纯虚函数内部调用了源接口的具体函数。
在主函数中我们创建了一个适配器对象并通过目标接口调用了适配器的request()函数。由于适配器类同时继承了目标接口和源接口所以在调用request()函数时实际上会调用到适配器类中的具体函数。