火龙果会员
注册 找回密码
每月超过20万元免费资源,目前收到捐助0
您可以捐助,支持我们的公益事业。
1元 10元 50元 100元
 验证码,看不清楚?请点击刷新验证码 必填
  求知 文章 文库 Lib 视频 iProcess 课程 认证 咨询 工具 讲座 Model Center   Code
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
   
  .Net 栏目
 
浏览(7183 次) 下载 (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()
运行效果