火龙果会员
注册
找回密码
每月超过
20万元
免费资源,目前收到捐助
12
。
您可以捐助,支持我们的公益事业。
1元
10元
50元
100元
必填
文章
规范
模型库
方案
工具
课程
资源
会员
会员
浏览
(6535 次)
下载
(27 次)
设计模式:AbstractFactory
通过由国家创建人和语言的实例,来解决把一组类的创建封装,并通过抽象的指针调用具体类的行为。
keywords:C# ,设计模式,AbstractFactory
来源:
火龙果
更新日期:2015-6-15
评价
好
中
差
设计模式:AbstractFactory
作者:俎涛
问题
存在多组类
从每组内部角度看:多个类之间具有关联性,它们会一起创建和使用。
从多组之间角度看:各组类具有类似性。
环境
每组类具有一致的关联关系。
解决方案
1. 把多组类中的类似性的类进行抽象,建立稳定基点。
例如:American和Chinese抽象成Person,ChineseLanguage和AmericanLanguage抽象成Language。
2. 为一组类的创建提供一个统一的抽象工厂类,分别负责组内各个类的创建,而把多个组中的这样的创建类抽象为统一接口。
例如 China负责创建Chinese和ChineseLanguage,America负责创建American和AmericanLanguage,China和American有进一步抽象为Country
3. 首先用抽象的工厂类的指针指向具体的工厂类,然后由具体的工厂类创建相关的多个类,为了保持适应性,所有的创建实例都由该类的抽象类代表。
例如:Country指向具体的America,然后America创建American和AmericanLanguage,这些实例由Person和Language指向。通过Person的指针调用America的行为Speak()。
效果
以把一组类的创建封装,并通过抽象的指针调用具体类的行为。
实例
由国家创建人和语言
结构类型:
用例模型:
用例名称
什么人说什么话
用例概述
中国人可以用汉语说话,英国人可以用英语说话
基本场景
1. 创建国家
2. 国家创建人和语言
3. 人说话
设计类图:
顺序图:
代码目录:
主程序Program.Main()
运行效果