设计模式14——适配器模式

适配器模式可以使接口不相同的几个对象通过适配来统一接口。Target与Adaptee各自拥有自己的方法,但接口不同,可以通过Adapter进行统一。

复制代码
 1 #ifndef Adapter_H_H
 2 #define Adapter_H_H
 3 
 4 #include <iostream>
 5 using namespace std;
 6 
 7 class Target
 8 {
 9 public:
10     virtual void display() { cout << "This is a common target!" << endl; }
11     virtual ~Target() {}
12 };
13 
14 class Adaptee
15 {
16 public:
17     void specialDisplay() { cout << "This is a special target!" << endl; }
18 };
19 
20 class Adapter : public Target
21 {
22 public:
23     Adapter() : adaptee(new Adaptee()) {}
24     virtual void display() { adaptee->specialDisplay(); }
25     ~Adapter() { delete adaptee; }
26 
27 private:
28     Adaptee *adaptee;
29 };
30 
31 
32 void AdapterTest()
33 {
34     Target *target1 = new Target();
35     Target *target2 = new Adapter();
36 
37     target1->display();
38     target2->display();
39 
40     delete target1;
41     delete target2;
42 }
43 
44 
45 #endif
复制代码

运行结果:

Adaptee与Target接口不同,却可以通过Adapter进行统一。

posted @   丛林小阁楼  阅读(134)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示