forked from micooz/DesignPattern
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStrategyPattern.cpp
More file actions
47 lines (38 loc) · 748 Bytes
/
Copy pathStrategyPattern.cpp
File metadata and controls
47 lines (38 loc) · 748 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
using namespace std;
class Strategy {
public:
virtual void Interface() = 0;
virtual ~Strategy() { }
};
class ConcreteStrategyA :public Strategy {
public:
void Interface() {
cout << "ConcreteStrategyA::Interface..." << endl;
}
};
class ConcreteStrategyB :public Strategy {
public:
void Interface() {
cout << "ConcreteStrategyB::Interface..." << endl;
}
};
class Context {
public:
Context(Strategy *stg) {
_stg = stg;
}
void DoAction() {
_stg->Interface();
}
private:
Strategy *_stg;
};
int main() {
Strategy *ps = new ConcreteStrategyA();
Context *pc = new Context(ps);
pc->DoAction();
delete pc;
delete ps;
return 0;
}