diff --git a/Proxy/client.cpp b/Proxy/client.cpp new file mode 100644 index 0000000000000000000000000000000000000000..55db9b59ac47489dd821224a10988c2046888fa0 --- /dev/null +++ b/Proxy/client.cpp @@ -0,0 +1,30 @@ +class ISubject{ +public: + virtual void process(); +}; + + +class RealSubject: public ISubject{ +public: + virtual void process(){ + //.... + } +}; + +class ClientApp{ + + ISubject* subject; + +public: + + ClientApp(){ + subject=new RealSubject(); + } + + void DoTask(){ + //... + subject->process(); + + //.... + } +}; \ No newline at end of file diff --git a/Proxy/proxy.cpp b/Proxy/proxy.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ff3fa383feb444d7c1b1f19adacc825f09e76248 --- /dev/null +++ b/Proxy/proxy.cpp @@ -0,0 +1,34 @@ +class ISubject{ +public: + virtual void process(); +}; + + +//Proxy的设计 +class SubjectProxy: public ISubject{ + + +public: + virtual void process(){ + //对RealSubject的一种间接访问 + //.... + } +}; + +class ClientApp{ + + ISubject* subject; + +public: + + ClientApp(){ + subject=new SubjectProxy(); + } + + void DoTask(){ + //... + subject->process(); + + //.... + } +}; \ No newline at end of file