深入理解Java设计模式之外观模式
目录
- 一、什么是外观模式
- 二、外观模式的使用场景
- 三、外观模式的优缺点
- 四、外观模式的实现
- 总结
一、什么是外观模式 定义:为子系统中的一组接口提供一个一致的界面,用来访问子系统中的一群接口。
文章图片
外观模式组成:
Facade
:负责子系统的的封装调用Subsystem Classes
:具体的子系统,实现由外观模式Facade对象来调用的具体任务二、外观模式的使用场景 1、设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式;
2、开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口;
3、维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
【深入理解Java设计模式之外观模式】
三、外观模式的优缺点 优点:
1、实现了子系统与客户端之间的松耦合关系;
2、客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。
缺点:
1、不符合开闭原则,如果要修改某一个子系统的功能,通常外观类也要一起修改;
2、没有办法直接阻止外部不通过外观类访问子系统的功能,因为子系统类中的功能必须是公开的(根据需要决定是否使用internal访问级别可解决这个缺点,但外观类需要和子系统类在同一个程序集内)。
四、外观模式的实现 先写出四个子系统的类
class SubSystemOne{public void MethodOne(){Console.WriteLine("子系统方法一"); }}class SubSystemTwo{public void MethodTwo(){Console.WriteLine("子系统方法二"); }}class SubSystemThree{public void MethodThree(){Console.WriteLine("子系统方法三"); }}class SubSystemFour{public void MethodFour(){Console.WriteLine("子系统犯法四"); }}
引入外观类,减少子系统类之间的交互
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(){Console.WriteLine("\n方法组合A()---"); one.MethodOne(); two.MethodTwo(); four.MethodFour(); }public void MethodB(){Console.WriteLine("\n方法组B()---"); two.MethodTwo(); three.MethodThree(); }}
客户端代码:
static void Main(string[] args){Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); Console.Read(); }
总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 深入理解Go之generate
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 由浅入深理解AOP
- 事件代理
- 逻辑回归的理解与python示例
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 【1057快报】深入机关,走下田间,交通普法,共创文明
- 数组常用方法一