From bb9400b945b8fdc91e57f818f2ea115bcb322a57 Mon Sep 17 00:00:00 2001 From: FengJungle Date: Tue, 22 Oct 2019 08:24:54 +0800 Subject: [PATCH] add AdapterPattern --- 7.AdapterPattern/1.Picture/UML实例图.png | Bin 0 -> 9922 bytes .../1.Picture/适配器模式UML图.png | Bin 0 -> 23596 bytes 7.AdapterPattern/2.Code/AdapterPattern.h | 56 ++++++++++++++++++ 7.AdapterPattern/2.Code/main.cpp | 11 ++++ README.md | 6 +- 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 7.AdapterPattern/1.Picture/UML实例图.png create mode 100644 7.AdapterPattern/1.Picture/适配器模式UML图.png create mode 100644 7.AdapterPattern/2.Code/AdapterPattern.h create mode 100644 7.AdapterPattern/2.Code/main.cpp diff --git a/7.AdapterPattern/1.Picture/UML实例图.png b/7.AdapterPattern/1.Picture/UML实例图.png new file mode 100644 index 0000000000000000000000000000000000000000..01cc5cafdf8420e808cd32dccbfcc4316784ac58 GIT binary patch literal 9922 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 ReD4fTR#Hi#K+O30{{!5PKe_+_ literal 0 HcmV?d00001 diff --git a/7.AdapterPattern/1.Picture/适配器模式UML图.png b/7.AdapterPattern/1.Picture/适配器模式UML图.png new file mode 100644 index 0000000000000000000000000000000000000000..daeba73b0e100d8991b82630b07ada4290600c64 GIT binary patch literal 23596 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 Xr6-S{jrIqwfWO_}?zPL`NelZQ@f=lK literal 0 HcmV?d00001 diff --git a/7.AdapterPattern/2.Code/AdapterPattern.h b/7.AdapterPattern/2.Code/AdapterPattern.h new file mode 100644 index 0000000..4319ade --- /dev/null +++ b/7.AdapterPattern/2.Code/AdapterPattern.h @@ -0,0 +1,56 @@ +#ifndef __SINGLETON_H__ +#define __SINGLETON_H__ + +#include +#include +#include +using namespace std; + +//Ŀ +class Controller +{ +public: + Controller(){} + virtual void pathPlanning() = 0; +private: +}; + +//DxfParser +class DxfParser +{ +public: + DxfParser(){} + void parseFile(){ + printf("ļȡ\n"); + } +}; + +//PathPlanner +class PathPlanner +{ +public: + PathPlanner(){} + void calculate(){ + printf("ӹ·\n"); + } +}; + +//Adapter +class Adapter:public Controller +{ +public: + Adapter(){ + dxfParser = new DxfParser(); + pathPlanner = new PathPlanner(); + } + void pathPlanning(){ + printf("·滮\n"); + dxfParser->parseFile(); + pathPlanner->calculate(); + } +private: + DxfParser *dxfParser; + PathPlanner *pathPlanner; +}; + +#endif //__SINGLETON_H__ \ No newline at end of file diff --git a/7.AdapterPattern/2.Code/main.cpp b/7.AdapterPattern/2.Code/main.cpp new file mode 100644 index 0000000..6a669b3 --- /dev/null +++ b/7.AdapterPattern/2.Code/main.cpp @@ -0,0 +1,11 @@ +#include +#include "AdapterPattern.h" + +int main() +{ + Controller *controller = new Adapter(); + controller->pathPlanning(); + + system("pause"); + return 0; +} \ No newline at end of file diff --git a/README.md b/README.md index 944c8c2..90975ee 100644 --- a/README.md +++ b/README.md @@ -35,4 +35,8 @@ 09.设计模式(九)——单例模式 -博客地址:https://blog.csdn.net/sinat_21107433/article/details/102649056 \ No newline at end of file +博客地址:https://blog.csdn.net/sinat_21107433/article/details/102649056 + +10.设计模式(十)——适配器模式 + +博客地址:https://blog.csdn.net/sinat_21107433/article/details/102656617 \ No newline at end of file