【1】什么是装饰模式?
装饰模式:动态地给一个对象添加一些额外的职责。
【2】装饰模式代码示例:
代码如下:
1 #include <string>
2 #include <iostream>
3 using namespace std;
4
5 class Person
6 {
7 private:
8 string m_strName;
9 public:
10 Person(string strName)
11 {
12 m_strName = strName;
13 }
14
15 Person(){}
16
17 virtual void show()
18 {
19 cout << "装扮的是:" << m_strName << endl;
20 }
21 };
22
23 class Finery : public Person
24 {
25 protected:
26 Person *m_component;
27 public:
28 void decorate(Person* component)
29 {
30 m_component = component;
31 }
32 virtual void show()
33 {
34 m_component->show();
35 }
36 };
37
38 class TShirts : public Finery
39 {
40 public:
41 virtual void show()
42 {
43 m_component->show();
44 cout << "T shirts" << endl;
45 }
46 };
47
48 class BigTrouser : public Finery
49 {
50 public:
51 virtual void show()
52 {
53 m_component->show();
54 cout << "Big Trouser" << endl;
55 }
56 };
57
58 int main()
59 {
60 Person *p = new Person("小李");
61 BigTrouser *bt = new BigTrouser();
62 TShirts *ts = new TShirts();
63
64 bt->decorate(p);
65 ts->decorate(bt);
66 ts->show();
67
68 return 0;
69 }
Good Good Study, Day Day Up.
顺序 选择 循环 总结