java设计模式总结七:门面模式
2017-11-01 18:29
218 查看
门面模式定义
门面模式也称外观模式,门面模式实现了子模块和客户端之间的松耦合关系,从而屏蔽了子模块内部的实现细节。只是将客户端需要的接口提供给客户,这样一来子模块组件如果发生变化,修改接口就可以了,不会影响到客户端的使用。简单来说就是把一系列复杂的流程封装成一个接口供给客户端更简单的使用门面模式三种角色
子系统角色,客户角色和门面角色, 其中门面角色可以看成是一个中间件,用于实现客户端间接调用子系统提供的一系列操作完成相应的功能门面角色举例
以薪资计算举例,假设薪资计算主要依据两个部分:月所得和假期:public class salary{ public double getSalary(){ return 2000; } } public class Holiday{ public double getHoliday(){ return 10; } }
这个时候我们直接客户端调用的话测试代码如下:
public class Client{ public static void main(String[] args){ Salary sal = new Salary(); Holiday hol = new Holiday(); double money = sal.getSalary()-hol.getHoliday(); System.out.println("我的薪资为:"+money); } }
而如果这样实现的话,客户端补单要分别获取工资和假期,还要进行薪资计算,这样导致代码之间结合太紧密。因此,我们可以使用门面模式进行松耦合:
//面向接口编程 public interface Computer{ public double salary(); } //门面角色扮演 public class SalaryComputer implements Computer{ public double salary(){ Salary sal = new Salary(); Holiday hol = new Holiday(); double money = sal.getSalary()-hol.getHoliday(); return money; } } //客户端测试代码: public class Client{ public static void main(String[] args){ Computer comp = new SalaryComputer(); System.out.println("我的薪资为:"+comp.salary()); } }
通过门面模式,我们可以看到客户端只是简单的调用了门面角色类的方法即可实现同样的功能,增强了代码的松耦合,并且如果薪资计算的方式发生改变,客户端代码也不需要进行改变,只需要响应的改变门面角色类就行了
相关文章推荐
- 关于java中static关键字在单态设计模式的应用学习和总结
- Java与模式读后总结--设计原则汇总
- java设计模式总结
- 23种java设计模式总结
- java_23种设计模式之门面模式
- (2011年java基础)设计模式总结(简述)
- JAVA GOF设计模式 总结。
- java设计模式总结篇--创建型模式
- 黑马程序员 Java设计模式总结
- Java中常用的设计模式总结
- java设计模式总结篇--行为型模式(2)
- <设计模式:java语言中的应用>摘要、总结
- java设计模式总结篇--结构型模式
- JAVA设计模式 —行为模式总结
- java的设计模式,学习心得总结-工厂模式
- JAVA设计模式学习总结
- [转]Java中常用设计模式总结
- JAVA设计模式 —创建型模式总结
- JAVA常用设计模式总结
- Java设计模式学习心得总结