本文共 1814 字,大约阅读时间需要 6 分钟。
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
public class SubSystem1{ public void MethodA() { Console.WriteLine("MethodA in SubSystem1"); } public void MethodB() { Console.WriteLine("MethodB in SubSystem1"); }}public class SubSystem2{ public void MethodA() { Console.WriteLine("MethodA in SubSystem2"); } public void MethodB() { Console.WriteLine("MethodB in SubSystem2"); }}public class SubSystem3{ public void MethodA() { Console.WriteLine("MethodA in SubSystem3"); } public void MethodB() { Console.WriteLine("MethodB in SubSystem3"); }}public class Facade{ private readonly SubSystem1 _subSystem1 = new SubSystem1(); private readonly SubSystem2 _subSystem2 = new SubSystem2(); private readonly SubSystem3 _subSystem3 = new SubSystem3(); public void MethodA() { _subSystem1.MethodA(); _subSystem2.MethodA(); _subSystem3.MethodA(); Console.WriteLine(); } public void MethodB() { _subSystem1.MethodB(); _subSystem2.MethodB(); _subSystem3.MethodB(); Console.WriteLine(); }}var facade = new Facade();facade.MethodA();facade.MethodB();
接口设计的好坏,直接影响到类、模块、系统是否好用。所以,我们要多花点心思在接口设计上。
完成接口设计,就相当于完成了一半的开发任务。只要接口设计得好,那代码就差不到哪里去。接口粒度设计得太大,太小都不好。太大会导致接口不可复用,太小会导致接口不易用。
在实际的开发中,接口的可复用性和易用性需要“微妙”的权衡。针对这个问题,我的一个基本的处理原则是,尽量保持接口的可复用性,但针对特殊情况,允许提供冗余的门面接口,来提供更易用的接口。
转载地址:http://sduki.baihongyu.com/