Skip to content

Commit afd3881

Browse files
authored
proxy Pattern added
1 parent 779c8e2 commit afd3881

File tree

6 files changed

+55
-0
lines changed

6 files changed

+55
-0
lines changed

ProxyPattern/interface.hpp

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#include <iostream>
2+
3+
using namespace std;
4+
5+
class Subject {
6+
public:
7+
virtual void Request() = 0;
8+
virtual ~Subject() { }
9+
};

ProxyPattern/main.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include "subject.hpp"
2+
3+
int main()
4+
{
5+
Subject *sub = new ConcreteSubject();
6+
Proxy *p = new Proxy(sub);
7+
p->Reuqest();
8+
9+
delete sub;
10+
delete p;
11+
12+
return 0;
13+
}

ProxyPattern/proxy.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "proxy.hpp"
2+
3+
Proxy::Proxy(Subject* subject)
4+
{
5+
_sub = subject;
6+
}
7+
void Proxy::Reuqest()
8+
{
9+
_sub->Request();
10+
}

ProxyPattern/proxy.hpp

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include "interface.hpp"
2+
class Proxy
3+
{
4+
public:
5+
Proxy(Subject* subject);
6+
void Reuqest();
7+
8+
private:
9+
Subject *_sub;
10+
};

ProxyPattern/subject.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#include "subject.hpp"
2+
3+
void ConcreteSubject::Request()
4+
{
5+
cout << "ConcreteSubject::Request..." << endl;
6+
}

ProxyPattern/subject.hpp

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#include "proxy.hpp"
2+
3+
class ConcreteSubject :public Subject
4+
{
5+
public:
6+
virtual void Request();
7+
};

0 commit comments

Comments
 (0)