posts - 183,  comments - 10,  trackbacks - 0
来自于《大话设计模式》
外观模式(Facade):为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

UML 类图:

代码实现 C++:
 1 #include <iostream>
 2 using namespace std;
 3 
 4 class Stock1
 5 {
 6 public:
 7     void Sell()
 8     {
 9         cout << "股票 1 卖出" << endl;
10     }
11     void Buy()
12     {
13         cout << "股票 1 买入" << endl;
14     }
15 };
16 
17 class Stock2
18 {
19 public:
20     void Sell()
21     {
22         cout << "股票 2 卖出" << endl;
23     }
24     void Buy()
25     {
26         cout << "股票 2 买入" << endl;
27     }
28 };
29 
30 class Stock3
31 {
32 public:
33     void Sell()
34     {
35         cout << "股票 3 卖出" << endl;
36     }
37     void Buy()
38     {
39         cout << "股票 3 买入" << endl;
40     }
41 };
42 
43 class Stock4
44 {
45 public:
46     void Sell()
47     {
48         cout << "股票 4 卖出" << endl;
49     }
50     void Buy()
51     {
52         cout << "股票 4 买入" << endl;
53     }
54 };
55 
56 class Fund
57 {
58 private:
59     Stock1* s1;
60     Stock2* s2;
61     Stock3* s3;
62     Stock4* s4;
63 public:
64     Fund() : s1(new Stock1), s2(new Stock2), s3(new Stock3), s4(new Stock4) {}
65     ~Fund()
66     {
67         delete s1;
68         delete s2;
69         delete s3;
70         delete s4;
71     }
72     void Sell()
73     {
74         s1->Sell();
75         s2->Sell();
76         s3->Sell();
77         s4->Sell();
78     }
79     void Buy()
80     {
81         s1->Buy();
82         s2->Buy();
83         s3->Buy();
84         s4->Buy();
85     }
86 };
87 
88 int main()
89 {
90     Fund f;
91     f.Buy();
92     f.Sell();
93     return 0;
94 }
posted on 2011-04-26 15:49 unixfy 阅读(225) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理