外观模式

4.8外观模式

4.8.1影院管理项目

组建一个家庭影院

DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的 功能,其过程为:

●直按用遥控器:统筹各设备开关

●开爆米花机

●放下屏幕

●开投影仪

●开音响

●开DVD,选DVD

●去拿爆米花

●调暗灯光

●播放

●观影结束后,关闭各种设备

解决思路

  1. 定义一个高层接口,给子系统中的一组接口提供一个一致的界面(比如在高层接口提供四个方法ready,play,pause,end),用来访间子系统中的一群接口。

  2. 也就是说就是通过定义一个一致的接口(界面类),用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节 => 外观模式。

4.8.2外观模式

基本介绍

  1. 外观模式(Facade),也叫 “过程模式” 外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

  2. 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。

4.8.3外观模式在MyBatis框架应用的源码分析

外观模式在MyBatis框架应用的源码分析

  1. MyBatis中的Configuration去创建MetaObject对象使用到外观模式。

  2. 代码分析+Debug源码+示意图。
    外观模式

4.3.4外观模式的注意事项和细节

  1. 外观模式对外屏蔽了子系统的细节,因此外观模式降低了客户端对子系统使用的复杂性。

  2. 外观模式对客户端与子系统的耦合关系-解耦,让子系统内部的模块更易维护和扩展。

  3. 通过合理的使用外观模式,可以帮我们更好的划分访问的层次

  4. 当系统需要进行分层设计时,可以考虑使用Facade模式。

  5. 在维护一个遗留的大型系统时,可能这个系统已经变得非常难以维护和扩展,此时可以考虑为新系统开发一个Facade类,来提供遗留系统的比较清晰简单的接口,让新系统与Facade类交互,提高复用性。

  6. 不能过多的或者不合理的使用外观模式,使用外观模式好,还是直接调用模块好。要以让系统有层次,利于维护为目的。

上一篇:laravel之自定义门面模式


下一篇:ES7-11