抽象工厂模式(abstractFactory)

1.要点

如果要创建“一系列相关或相互依赖的对象”,而且这个对象的“系列”是易变的,就可以用抽象工厂模式。

抽象工厂模式的结构:

20051105162646184

2.DEMO

想开一家餐馆,专卖“鸡鸭鱼系列”,要开餐馆,先得考虑大厨,这个大厨必须得会做“鸡、鸭、鱼”,但做成什么风味的呢?一时没考虑清楚,以后再说吧。先把对大厨的要求列出来

展开

不管有没有请到大厨,先把餐馆开起来吧,以后请到了大厨,说“做菜”,他就可以做出他拿手风味的“鸡、鸭、鱼”了。

展开

 

先请了个川菜的大厨。

 

展开

 

请到了大厨,餐馆正式开张

展开

 

运行:

1

看来餐馆运行正常。

 

开餐馆时没想到这地方人喜欢吃上海菜,川菜生意不太好,所以打算改做上海菜,现在有两种选择:一种是让这川菜师傅改做上海菜,但这太麻烦,得让他学(要修改川菜大厨类和川菜风味的鸡鸭鱼);另一种是直接请个会做上海菜的师傅当大厨。当然第二种方案简单了。

展开

 

把餐馆大厨重新换一下

展开

 

2

完全不用对餐馆做任何更改,就可以做出上海风味了,当然想要其它的风味也是很简单了。

 

将以上各个文件单独编译交给客户使用,如果客户提出要做其它风味的,只用增加个大厨的DLL交给客户,客户就可以在Main方法中指定做出另一种风味了。

posted @ 2011-01-11 12:33  youngbo  阅读(161)  评论(0)    收藏  举报