求知 文章 文库 Lib 视频 Code iProcess 课程 角色 咨询 工具 火云堂 讲座吧   成长之路  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 

C语言和设计模式 教程
开篇
单件模式
原型模式
组合模式
模板模式
工厂模式
责任链模式
抽象工厂模式
迭代器模式
外观模式
代理模式
享元模式
装饰模式
适配器模式
策略模式
中介者模式
建造者模式
桥接模式
观察者模式
备忘录模式
解释器模式
命令模式
状态模式
访问者模式
继承、封装、多态
 
 

外观模式
110 次浏览
17 次
 捐助

外观模式是比较简单的模式。它的目的也是为了简单。什么意思呢?举个例子吧。以前,我们逛街的时候吃要到小吃一条街,购物要到购物一条街,看书、看电影要到文化一条街。那么有没有这样的地方,既可以吃喝玩乐,同时相互又靠得比较近呢。其实,这就是悠闲广场,遍布全国的万达广场就是干了这么一件事。

首先,我们原来是怎么做的。

typedef struct _FoodSteet  
{
void (*eat)();
}FoodStreet;

void eat()
{
printf("eat here!\n");
}

typedef struct _ShopStreet
{
void (*buy)();
}ShopStreet;

void buy()
{
printf("buy here!\n");
}

typedef struct _BookStreet
{
void (*read)();
}BookStreet;

void read()
{
printf("read here");
}

下面,我们就要在一个plaza里面完成所有的项目,怎么办呢?

typedef struct _Plaza  
{
FoodStreet* pFoodStreet;
ShopStreet* pShopStreet;
BookStreet* pBookStreet;

void (*play)(struct _Plaza* pPlaza);
}Plaza;

void play(struct _Plaza* pPlaza)
{
assert(NULL != pPlaza);

pPlaza->pFoodStreet->eat();
pPlaza->pShopStreet->buy();
pPlaza->pBookStreet->read();
}

 

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



110 次浏览
17 次
 捐助
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号