外观模式

来源:互联网 发布:侠客风云传32位优化 编辑:程序博客网 时间:2024/05/08 01:01

         外观模式,看完之后就觉得好像我们生活中的客服,譬如我们中国移动的10086,客户如果想了解某个手机服务,可以直接通过客服访问移动提供的服务信息,而不用直接与各个业务平台直接接触。也就是说,当我们的客户程序需要与子系统交互的时候,我们可以通过一个facade类来调用各个子系统的功能,让客户端程序直接与这个facade类交互,这样不但解除了客户程序与子系统的耦合,而且还有利于屏蔽子系统之间的复杂操作。

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

        下面是对书中代码的简单实践:

// 外观模式.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class Methods1{public:void method1(){  cout<<"实现子类1中的方法1"<<endl;}void method2(){  cout<<"实现子类1中的方法2"<<endl;}};class Methods2{public:void method1(){  cout<<"实现子类2中的方法1"<<endl;}void method2(){  cout<<"实现子类2中的方法2"<<endl;}};class Methods3{public:void method1(){  cout<<"实现子类3中的方法1"<<endl;}void method2(){  cout<<"实现子类3中的方法2"<<endl;}};class Facade{public:void face1(){m1.method1();m2.method1();m3.method1();}void face2(){m1.method2();m2.method2();m3.method2();}private:Methods1 m1;Methods2 m2;Methods3 m3;};int _tmain(int argc, _TCHAR* argv[]){Facade F;F.face1();F.face2();system("pause");return 0;}


外观模式的特点:

1、对客户端屏蔽子系统的复杂功能

2、解除客户端与子系统的耦合

3、使得子系统的功能使用灵活和简单

 

外观模式的使用情况:

1、为了在复杂子系统中提供一个简单的接口

2、为了提高子系统的独立性

 

总结:外观模式主要是简化接口,就是在繁多的类中提供一个统一的访问接口,这样容易管理,而且不容易出错。

       

原创粉丝点击