• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

外观模式(facade)之c#

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

外观模式(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模式的相似之处是,它抽象了一些已有的类的功能


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap