【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
外观模式是比较简单的模式。它的目的也是为了简单。什么意思呢?举个例子吧。以前,我们逛街的时候吃要到小吃一条街,购物要到购物一条街,看书、看电影要到文化一条街。那么有没有这样的地方,既可以吃喝玩乐,同时相互又靠得比较近呢。其实,这就是悠闲广场,遍布全国的万达广场就是干了这么一件事。
首先,我们原来是怎么做的。
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();
}
本文通过一个生活化的比喻,介绍了软件设计中的外观模式。该模式通过创建一个统一的接口来提供一组子系统的功能,从而使客户端能够更简单地使用这些子系统。文章用具体的代码示例展示了如何将原本分散的功能整合进一个广场(Plaza)类中,从而简化了客户端的调用过程。
281

被折叠的 条评论
为什么被折叠?



