今天开学第一天,还是什么都听不懂,怎么办呢,唉~~~法语得好好学啊,上一届留级6个,及格线到12分了,上学期10分都留了那么多。可是我对法语还是没什么兴趣,怎么办呢~~~
不扯淡了,谈谈今天学习成果吧,看了一下外观模式。写出来就当做一下笔记吧。
定义:
为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
这里的界面不是我们通常理解的GUI界面,主要是指从一个组件外部来看这个组件,能够看到什么,就是这个组件的界面,也就是所说的外观。
比如,从一个类外部来看这个类,那么这个类的public方法就是这个类的外观,因为你从类外部 来看这个类,就能看到这些。模块对外的接口就是这个模块的外观。
解决问题思路:
客户端想要操作更简单点,就根据客户端的需要来给客户端定义一个简单的接口(这里的接口指的客户端和被访问系统的一个通道,并不是指interface,在外观模式里,通常指的是类,被称为外观),然后让客户端调用这个接口,剩下的事就不用客户端管了。
外观械就是通过引入这么一个外观类,在这个类里面定义客户端想要的简单的方法,然后在这些方法的实现里面,由外观类再去分别 调用内部 的多个模块来实现功能,从而让客户端变得简单,这样一样,客户端只需要和外观类交互就行。
外观模式结构:
Facade
定义子系统的多个模块对外的高层接口,通常需要调用内部的多个模块,从而把客户的请求代理给适当 的子系统对象。
模块
接受Facade对象的委派,真正实现功能,各个模块间可能有交互。但是Facade对象知道各个模块,各个模块不知道Facade。
代码很简单,就不想写了~~~
facade模块里不用全部实现子系统的接口~~~