java外观模式
2018-01-09 17:06
106 查看
其他设计模式
java单例模式
java建造者模式
java策略模式
java代理模式
java观察者模式
java适配器模式
java外观模式
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
四个子系统的类
外观类
客户端调用
松散耦合
简单易用
更好的划分访问的层次
缺点
过多的或者是不太合理的Facade也容易让人迷惑。到底是调用Facade好还是直接调用模块好。
如果想要让客户程序和抽象类的实现部分松散耦合,可以考虑使用外观模式,使用外观对象来将这个子系统与它的客户分离开来,从而提高子系统的独立性和可移植性。
如果构建多层结构的系统,可以考虑使用外观模式,使用外观对象作为每层的入口,这样就可以简化层间调用,也可以松散层次之间的依赖关系。
java单例模式
java建造者模式
java策略模式
java代理模式
java观察者模式
java适配器模式
java外观模式
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
四个子系统的类
public class SubSystemOne { public void methodOne(){ System.out.println("子系统方法一"); } } public class SubSystemTwo { public void methodTwo(){ System.out.println("子系统方法二"); } } public class SubSystemThree { public void methodThree(){ System.out.println("子系统方法三"); } } public class SubSystemFour { public void methodFour(){ System.out.println("子系统方法四"); } }
外观类
public class Facade { SubSystemOne one; SubSystemTwo two; SubSystemThree three; SubSystemFour four; public Facade() { one = new SubSystemOne(); two = new SubSystemTwo(); three = new SubSystemThree(); four = new SubSystemFour(); } public void methodA(){ one.methodOne(); two.methodTwo(); three.methodThree(); } public void methodB(){ one.methodOne(); two.methodTwo(); three.methodThree(); four.methodFour(); } }
客户端调用
public class TestFacade { public static void main(String[] args) { Facade facade=new Facade(); facade.methodA(); facade.methodB(); } }
外观模式的目的
不是给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。优缺点
优点松散耦合
简单易用
更好的划分访问的层次
缺点
过多的或者是不太合理的Facade也容易让人迷惑。到底是调用Facade好还是直接调用模块好。
本质
封装交互,简化调用何时选用外观模式
如果你希望为复杂的子系统提供一个简单接口的时候,可以考虑使用外观模式。使用外观对象对实现大部分客户需要的功能,从而简化客户的使用。如果想要让客户程序和抽象类的实现部分松散耦合,可以考虑使用外观模式,使用外观对象来将这个子系统与它的客户分离开来,从而提高子系统的独立性和可移植性。
如果构建多层结构的系统,可以考虑使用外观模式,使用外观对象作为每层的入口,这样就可以简化层间调用,也可以松散层次之间的依赖关系。
相关文章推荐
- Java设计模式之外观模式研究
- java设计模式学习笔记--外观模式
- 外观模式(java实现)
- Java设计模式--Facade外观模式
- Java设计模式(11)外观模式(Facade模式)
- Java设计模式:外观模式(Facade Pattern)与最少知识原则
- 外观模式小程序JAVA源代码
- Java设计模式之外观模式(Facade)
- JAVA设计模式初探之——门面模式(外观模式)
- java结构型设计模式——外观模式
- java 设计模式之外观模式的详解(结构模式)
- Java设计模式——Facade(外观)模式
- Java设计模式 结构模式-外观模式(Facade)
- java设计模式之外观模式
- java设计模式之外观模式
- 设计模式(十)----- 外观模式(Facade)----(JAVA版)
- Java设计模式:八、外观模式
- 图文详解Java外观模式
- Java设计模式——外观模式
- JAVA设计模式之门面模式(外观模式)