forked from shihyu/DesignPatternExample
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.c
More file actions
24 lines (20 loc) · 690 Bytes
/
Copy pathmain.c
File metadata and controls
24 lines (20 loc) · 690 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
#include "base.h"
#include "itravel_strategy.h"
#include "airplane_strategy.h"
#include "train_strategy.h"
#include "person.h"
int main()
{
TrainStrategy* trainStrategy = new(TrainStrategy);
ITravelStrategy* itravelStrategy = &trainStrategy->itravelStrategy;
Person* person = new(Person, itravelStrategy);
person->travel(person);
AirplaneStrategy* airplaneStrategy = new(AirplaneStrategy);
itravelStrategy = &airplaneStrategy->itravelStrategy;
person->setTravelStrategy(person, itravelStrategy);
person->travel(person);
delete(Person, person);
delete(AirplaneStrategy, airplaneStrategy);
delete(TrainStrategy, trainStrategy);
return 0;
}