火龙果会员
注册 找回密码
每月超过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()
运行效果