火龙果会员
注册
找回密码
每月超过
20万元
免费资源,目前收到捐助
0
。
您可以捐助,支持我们的公益事业。
1元
10元
50元
100元
必填
求知
文章
文库
Lib
视频
iProcess
课程
认证
咨询
工具
讲座
Model Center
Code
会员
要资料
追随技术信仰
随时听讲座
每天看新闻
.Net 栏目
浏览
(7041 次)
下载
(41 次)
FactoryMethod设计模式
(已逆向)
抽象公共的结构和行为,建立抽象的框架层,以便各个具体应用可以继承公共行为,并根据具体应用的不同,实例化不同的子类对象。
keywords:C# ,设计模式,FactoryMethod
来源:
火龙果
更新日期:2015-5-31
评价
好
中
差
作者:俎涛
问题
如何提炼一个可以为多个应用建立同一结构关系,实现各个应用的继承性扩展。
环境
多个应用具有类似的结构和行为。
解决方案
抽象公共的结构和行为,建立抽象的框架层,以便各个具体应用可以继承公共行为,并根据具体应用的不同,实例化不同的子类对象。
效果
具体应用开发具有规范性和继承性。
实例
不同国家的人说不同的话。
用例模型:
用例名称
Speak
用例概述
中国人可以用汉语说话,英国人可以用英语说话
基本场景
用户选择人种,App创建选择的人种,人种创建他的语言,用户输入词汇,App查找词汇,说话。
备选场景
如果人种选择错误,提示没有此人种。如果找不到,提示没有此词汇。
设计类图:
类名
Person
功能
抽象类,用于建立和Language的关系
方法
说明
CreateLanguage()
抽象方法,留给子类去实现。
Speak()
具体方法,查询词汇表说话。
类名
Language
功能
抽象类,用于建立各种语言的公共结构
属性
说明
helloWorld
词汇记录属性
sorry
词汇记录属性
类名
Chinese
功能
实现Person,提供汉语创建方法
方法
说明
CreateLanguage()
实现汉语创建
Speak()
继承父类方法。
类名
ChineseLanguage
功能
实现Language ,建立具体的汉语词汇
方法
说明
ChineseLanguage ()
构造汉语词汇表
类名
Englishman
功能
实现Person,提供英语创建方法
方法
说明
CreateLanguage()
实现英语创建
Speak()
继承父类方法。
类名
EnglishLanguage
功能
实现Language ,建立具体的汉语词汇
方法
说明
EnglishLanguage ()
构造英语词汇表
顺序图:
代码目录:
主程序Program.Main():
运行效果:
gsandzyj@163.com: 描述的很细致,也很到位。