外观模式(Facade Pattern)可以将一系列复杂的类包装成一个简单的封闭接口。也称门面模式.
Facade模式的意图是:为了子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
先上图
可以看的出来,我们客户端调用子系统方法,并不是直接调用,而是中间有个高层次的统一接口Entity
client调用只是跟Entity这个类打交道,别的don't care
class Client { //门面/外观模式 facade[fə'sɑ:d] 之C# /* 应用场景 * 为子系统中的接口提供一个一致的调用方法,一般在项目的前期不用,后期解耦时候考虑用 * 开发阶段,会产生很多小的类,为了减少类之间的耦合,可以用facade模式定义一个统一的接口 * 在对老系统进行维护和升级的时候,可能要调用以前的方法,同时不对这些方法进行修改,可以考虑定义一个更高层次的接口,调用遗留的老方法,
新系统不直接调用原来的方法,而是通过访问这个更高层次的接口调用以前的方法 */ static void Main(string[] args) { Entity entity = new Entity(); entity.Activity(); entity.Rest(); Console.Read(); } } //吃喝 class Eat { public void Action() { Console.WriteLine("Eat "); } } //玩乐 class Play { public void Action() { Console.WriteLine("Play"); } } //休息,睡觉 class Sleep { public void Rest() { Console.WriteLine("Sleep"); } } class Entity { Eat eat; Play play; Sleep sleep; public Entity()//构造函数 { eat = new Eat(); play = new Play(); sleep = new Sleep(); } public void Activity()//吃喝玩乐 { eat.Action(); play.Action(); } public void Rest()//休息 { sleep.Rest(); } }
Abstract Factory模式可以与Facade模式一起使用以提供一个接口,这一接口可用来以一种子系统独立的方式创建子系统对象。Abatract Factory模式也可以代替Facade模式隐藏那些与平台相关的类
Abstract Factory模式可以与Facade模式一起使用以提供一个接口,这一接口可用来以一种子系统独立的方式创建子系统对象。Abatract Factory模式也可以代替Facade模式隐藏那些与平台相关的类
Mediator模式与Facade模式的相似之处是,它抽象了一些已有的类的功能
|
请发表评论