码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 结构型模式-外观(Facade)

时间:2020-01-24 00:04:54      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:独立   层次结构   移植   技术   c++   一个   virtual   图片   void   

1) 意图:

为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得子系统更加容易使用

2) 结构:

 技术图片

 

3) 适用性:

  1. 为一个复杂子系统提供一个简单接口时
  2. 为了提高子系统的独立型和可移植性
  3. 当需要构建一个层次结构的子系统时,使用Facade模式定义子系统每层的入口点

4) 举例:

 1 #include <iostream>
 2 #include <list>
 3 class  SubSystem1
 4 {
 5 public:
 6     SubSystem1() {}
 7     virtual ~SubSystem1() {}
 8     virtual void  Operation1()
 9     {
10         std::cout << "Operation1" << std::endl;
11     }
12 };
13 class  SubSystem2
14 {
15 public:
16     SubSystem2() {}
17     virtual ~SubSystem2() {}
18     virtual void  Operation2()
19     {
20         std::cout << "Operation2" << std::endl;
21     }
22 };
23 class  SubSystem3
24 {
25 public:
26     SubSystem3() {}
27     virtual ~SubSystem3() {}
28     virtual void  Operation3()
29     {
30         std::cout << "Operation3" << std::endl;
31     }
32 };
33 class  Facade
34 {
35 public:
36     Facade() {}
37     virtual ~Facade() {}
38     virtual void  ProductA()
39     {
40         m_subSystem1.Operation1();
41         m_subSystem2.Operation2();
42     }
43     virtual void  ProductB()
44     {
45         m_subSystem2.Operation2();
46         m_subSystem3.Operation3();
47     }
48 private:
49     SubSystem1 m_subSystem1;
50     SubSystem2 m_subSystem2;
51     SubSystem3 m_subSystem3;
52 };
53  int main()
54  {
55      Facade facade;
56      facade.ProductA();
57      facade.ProductB();
58      system("pause");
59  }

 

c++ 结构型模式-外观(Facade)

标签:独立   层次结构   移植   技术   c++   一个   virtual   图片   void   

原文地址:https://www.cnblogs.com/ho966/p/12231672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!