大话设计模式-外观模式

Posted 吾谨受教!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大话设计模式-外观模式相关的知识,希望对你有一定的参考价值。

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

 1 // facade.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include <iostream>
 6 
 7 using namespace std;
 8 
 9 class systemone{
10 
11 public:
12     void method1(){
13         cout << "systemone : method1" << endl;
14     }
15 };
16 
17 class systemtwo{
18 public:
19     void method2(){
20         cout << "systemtwo : method2" << endl;
21     }
22 };
23 class systemthree{
24 public:
25     void method3(){
26         cout << "systemthree : method3" << endl;
27     }
28 };
29 class systemfour{
30 public:
31     void method4(){
32         cout << "systemfour : method4" << endl;
33     }
34 };
35 
36 class Facade{
37 
38 public:
39     void Fund(){
40         sysone = new systemone();
41         systwo = new systemtwo();
42         systhree = new systemthree();
43         systwo = new systemtwo();
44         sysfour = new systemfour();
45     }
46 
47     void Method1(){
48 
49         sysone->method1();
50         systwo->method2();
51         sysfour->method4();
52     }
53 
54     void Method2(){
55         systwo->method2();
56         systhree->method3();
57         sysfour->method4();
58     }
59 private:
60     systemone *sysone;
61     systemtwo *systwo;
62     systemthree *systhree;
63     systemfour *sysfour;
64 };
65 int _tmain(int argc, _TCHAR* argv[])
66 {
67     Facade *f = new Facade();
68     f->Method1();
69     f->Method2();
70     return 0;
71 }

使用场景:

(1)设计初期,有意识的将不同的两个层进行分离,比如经典的三层架构,就要考虑数据访问层和业务逻辑层,业务逻辑层与表现层,层与层之间建立外观facade。降低耦合性。

(2)开发阶段,子系统随着不断的重构演化会变得越来越复杂,会产生很多很小的类。增加外观facade提供一个简单的接口,减少他们的依赖。

(3)在维护一个遗留的大型系统时,可能这个系统很难维护,就可以开发外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰的结接口,让新系统与facade对象交互,facade与遗留系统进行交互复杂的工作。

以上是关于大话设计模式-外观模式的主要内容,如果未能解决你的问题,请参考以下文章

java 之 外观模式(大话设计模式)

大话涉及模式Python实现-外观模式

大话设计模式-外观模式

大话设计模式-外观模式

大话设计模式读书笔记--8.外观模式

《大话设计模式》——读后感 牛市股票还会亏钱?——外观模式