Facade Pattern
今天看见迅雷的面试题竟然考到这个模式,我就把这个模式好好的温习了一遍。
Facade(外观模式),这个模式他是从系统层次上来定义的,它封装了一些底部对象的实现,然后组合到这个Facade里,向外部提供一个可以调用的借口。它的好处一是简化了外部的调用,二是隐藏内部的实现,三是对底部对象进行控制,使得外部无法直接使用此对象的方法,必须通过Facade。
下面是一段代码:
首先,我建立一个程序集叫做FacadeBiz
namespace FacadeBiz { internal class ClassA { internal static void ActionA() { Console.WriteLine("ActionA"); } } Internal class ClassB { internal static void Action1() { Console.WriteLine("Action1"); } } public class Facade { public static void FacadeAction() { ClassA.ActionA(); ClassB.Action1(); } } }
然后在程序集FacadePattern里引用FacadeBiz
namespace FacadePattern { class Program { static void Main(string[] args) { FacadeBiz.Facade.FacadeAction(); //ActionA() is protective FacadeBiz.ClassA.ActionA(); } } }