4.8外观模式
4.8.1影院管理项目
组建一个家庭影院:
DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的 功能,其过程为:
●直按用遥控器:统筹各设备开关
●开爆米花机
●放下屏幕
●开投影仪
●开音响
●开DVD,选DVD
●去拿爆米花
●调暗灯光
●播放
●观影结束后,关闭各种设备
解决思路:
-
定义一个高层接口,给子系统中的一组接口提供一个一致的界面(比如在高层接口提供四个方法ready,play,pause,end),用来访间子系统中的一群接口。
-
也就是说就是通过定义一个一致的接口(界面类),用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节 => 外观模式。
4.8.2外观模式
基本介绍
-
外观模式(Facade),也叫 “过程模式” 外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
-
外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。
4.8.3外观模式在MyBatis框架应用的源码分析
外观模式在MyBatis框架应用的源码分析
-
MyBatis中的Configuration去创建MetaObject对象使用到外观模式。
-
代码分析+Debug源码+示意图。
4.3.4外观模式的注意事项和细节
-
外观模式对外屏蔽了子系统的细节,因此外观模式降低了客户端对子系统使用的复杂性。
-
外观模式对客户端与子系统的耦合关系-解耦,让子系统内部的模块更易维护和扩展。
-
通过合理的使用外观模式,可以帮我们更好的划分访问的层次。
-
当系统需要进行分层设计时,可以考虑使用Facade模式。
-
在维护一个遗留的大型系统时,可能这个系统已经变得非常难以维护和扩展,此时可以考虑为新系统开发一个Facade类,来提供遗留系统的比较清晰简单的接口,让新系统与Facade类交互,提高复用性。
-
不能过多的或者不合理的使用外观模式,使用外观模式好,还是直接调用模块好。要以让系统有层次,利于维护为目的。