外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式是针对模块的外部系统使用使用,相当于外观模式把一个系统所有的功能打包好了,提供一些接口给外界来使用这个系统的功能;
设计初期阶段:
要有意识的将不同的层分离,如经典的三层架构。在数据访问层和业务逻辑层、业务逻辑和表示层之间建立外观Facede。
这样可以为复杂的子系统提供一个简单的接口,使得耦合大大降低。
开发阶段:
子系统因重构演化变得复杂,产生很多很小的类,给外部调用它们的用户程序带来了使用上的困难,增加外观facade可以提供一个简单的接口,减少它们之间的依赖
维护阶段:
维护遗留的大型系统时,可能已经难以维护和扩展了。如果包含重要的功能,新的需求开发必须依赖于其时,可以为新系统开发一个外观facade类,来提供简单的接口,让新系统与facade对象交互。
namespace FacadeMode { class SubSystemOne { public void MethodOne() { Console.WriteLine("子系统方法一"); } } class SubSystemTwo { public void MethodTwo() { Console.WriteLine("子系统方法二"); } } class SubSystemThree { public void MethodThree() { Console.WriteLine("子系统方法三"); } } class Facade { SubSystemOne one; SubSystemTwo two; SubSystemThree three; public Facade() { one = new SubSystemOne(); two = new SubSystemTwo(); three = new SubSystemThree(); } public void MethodA() { Console.WriteLine("方法组A----\n"); one.MethodOne(); two.MethodTwo(); } public void MethodB() { Console.WriteLine("方法组B----\n"); one.MethodOne(); three.MethodThree(); } } class Program { static void Main(string[] args) { Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); Console.Read(); } } }
设计模式------外观模式
最新推荐文章于 2022-09-16 19:35:11 发布