JAVA设计模式之外观模式
来源:互联网 发布:centos mv 移动目录 编辑:程序博客网 时间:2024/05/13 01:03
JAVA设计模式之外观模式
概念:
先了解一个基本法则:
迪米特法则(最少知道原则)(Demeter Principle)
一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。
最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。
外观模式:又称门面模式。为子系统提供统一的入口,封装子系统的复杂性,比客户端调用。
在门面模式中,通常只需要一个门面类,并且此门面类只有一个实例,换言之它是一个单例类。当然这并不意味着在整个系统里只有一个门面类,而仅仅是说对每一个子系统只有一个门面类。或者说,如果一个系统有好几个子系统的话,每一个子系统都有一个门面类,整个系统可以有数个门面类。
类图
医院将后面的隐藏起来,不用病人直接调用,病人不用关注细节了。
注册公司也是,不需要关注细节,只通过一个门面类就可以注册公司了。
应用
JDBC封装后的,commons提供的DBUtils类,Hibernate提供的工具类,Spring JDBC工具类等。
代码
总结
门面模式的优点:
● 松散耦合
门面模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。
● 简单易用
门面模式让子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块进行交互,只需要跟门面类交互就可以了。
● 更好的划分访问层次
通过合理使用Facade,可以帮助我们更好地划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的。把需要暴露给外部的功能集中到门面中,这样既方便客户端使用,也很好地隐藏了内部的细节。
- java设计模式之外观
- Java设计模式之外观模式研究
- Java设计模式之外观模式研究
- Java设计模式之外观模式
- Java设计模式之外观模式
- java设计模式之外观模式Facade
- JAVA设计模式之外观模式
- JAVA设计模式之外观(Facade)模式
- 【Java设计模式】之外观模式
- Java--设计模式之外观模式
- java设计模式之外观模式
- java设计模式之外观模式Facade
- 《Java设计模式》之外观模式
- java设计模式之外观模式
- java设计模式之外观模式
- Java设计模式之外观模式
- Java设计模式之-外观模式
- 设计模式之外观模式(Java)
- 图像混合(Python+opencv)
- CodeForces - 148C C - Terse princess 构造数列
- 用python实现FTP传输
- 2.2、Hibernate用注解方式实现一对多、多对多关系
- Logger的解析使用
- JAVA设计模式之外观模式
- .实现一个函数,可以左旋字符串中的k个字符。 AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA
- String StringBuiler StringBuffer
- Apache HTTP Server通过mod_cluster模块与Tomcat连接
- JS获取屏幕宽高
- css 偶遇
- PAT(basic level) 1058选择题(20)
- Android的消息机制之ThreadLocal的工作原理
- 滑动窗口的最大值