C语言和设计模式(外观模式)10
2012-01-18 12:26
232 查看
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
外观模式是比较简单的模式。它的目的也是为了简单。什么意思呢?举个例子吧。以前,我们逛街的时候吃要到小吃一条街,购物要到购物一条街,看书、看电影要 到文化一条街。那么有没有这样的地方,既可以吃喝玩乐,同时相互又靠得比较近呢。其实,这就是悠闲广场,遍布全国的万达广场就是干了这么一件事。
首先,我们原来是怎么做的。
[cpp] view plaincopy
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里面完成所有的项目,怎么办呢?
[cpp] view plaincopy
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();
}
外观模式是比较简单的模式。它的目的也是为了简单。什么意思呢?举个例子吧。以前,我们逛街的时候吃要到小吃一条街,购物要到购物一条街,看书、看电影要 到文化一条街。那么有没有这样的地方,既可以吃喝玩乐,同时相互又靠得比较近呢。其实,这就是悠闲广场,遍布全国的万达广场就是干了这么一件事。
首先,我们原来是怎么做的。
[cpp] view plaincopy
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里面完成所有的项目,怎么办呢?
[cpp] view plaincopy
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();
}
相关文章推荐
- 设计模式(10)——Facade(外观)模式
- 设计模式(10)------外观模式
- C语言设计模式:外观模式
- 设计模式(10) 门面/外观模式(简单入门 结构模式)
- [设计模式] 10 外观模式 facade
- java学习笔记-设计模式10(外观模式)
- Java设计模式10——外观模式
- 设计模式10:外观模式【结构型】
- 设计模式(10) 外观模式(FACADE)
- 重学java23种设计模式(10)外观模式
- 设计模式笔记10:外观模式(Facade Pattern)
- C语言和设计模式(外观模式)
- C语言和设计模式(外观模式)
- 设计模式10 - 外观模式Facede
- 设计模式笔记10:外观模式(Facade Pattern)
- 【设计模式 - 10】之外观模式(Facade)
- java 设计模式 学习笔记(10) 外观模式
- 设计模式(10)-结构型-外观模式(Facade)
- 【设计模式 - 10】之外观模式(Facade)
- IOS设计模式学习(10)外观