- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C设计模式之工厂方法模式
工厂方法模式(Factory Method)
耦合关系:??? ?? 动机(Motivation):??? 在软件系统中,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但它却有比较稳定的接口。??? 如何应对这种变化呢?提供一种封装机制来隔离出这个易变对象的变化,从而保持系统中其它依赖的对象不随需求的变化而变化。意图(Intent):??? 定义一个用户创建对象的接口,让子类决定实例哪一个类。Factory Method使一个类的实例化延迟到子类。??? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ----------《设计模式》GOF结构图(Struct):??? ?? ?? ?? ?? 生活实例:??? ?? ?? 适用性:??? 1.当一个类不知道它所必须创建的对象类的时候。??? 2.当一个类希望由它子类来指定它所创建对象的时候。??? 3.当类将创建对象的职责委托给多个帮助子类中的某个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。实例代码:CarFactory类:
1????public?abstract?class?CarFactory2?????{3????????public?abstract?Car?CarCreate();4?????}
Car类:
1???public?abstract?class?Car2?????{3????????public?abstract?void?StartUp();4????????public?abstract?void?Run();5????????public?abstract?void?Stop();6???????7?????}
HongQiCarFactory类:
1???public?class?HongQiCarFactory:CarFactory2?????{3????????public?override?Car?CarCreate()4????????{5????????????return?new?HongQiCar();6????????}7?????}
BMWCarFactory类:
1???public?class?BMWCarFactory:CarFactory2?????{3????????public?override?Car?CarCreate()4????????{5????????????return?new?BMWCar();6????????}7?????}
HongQiCar类:
?1???public??class?HongQiCar:Car?2?????{?3???????public?override?void?StartUp()?4???????{?5???????????Console.WriteLine(Test?HongQiCar?start-up?speed!);?6???????}?7???????public?override?void?Run()?8???????{?9???????????Console.WriteLine(The?HongQiCar?run?is?very?quickly!);10???????}11???????public?override?void?Stop()12???????{13???????????Console.WriteLine(The?slow?stop?time?is?3?second?);14???????}15?????}
BMWCar类:
?1????public??class?BMWCar:Car?2?????{?3????????public?override?void?StartUp()?4????????{?5????????????Console.WriteLine(The?BMWCar?start-up?speed?is?very?quickly);?6????????}?7????????public?override?void?Run()?8????????{?9????????????Console.WriteLine(The?BMWCar?run?is?quitely?fast?and?safe!!!);10????????}11????????public?override?void?Stop()12????????{13????????????Console.WriteLine(The?slow?stop?time
您可能关注的文档
最近下载
- 中国现代文学史(第三版)第五章50—70年代台港诗歌、戏剧、散文.pptx
- 教育家精神专题课件.ppt VIP
- 一年级心理健康教育教案(20篇).docx VIP
- 三菱电梯菱云2LEHY2调试资料.pdf
- 0—3岁婴幼儿抚养与教育电子教案 第三章 第三节 婴幼儿三浴锻炼与抚触.docx VIP
- 急诊常见首发症状的鉴别与诊疗思路题库答案-2025年华医网继续教育.docx VIP
- 《不抱怨的世界》-读书分享课件.pptx VIP
- 商务数据分析 项目1 认识Excel与商务数据分析.pptx VIP
- 错合畸形的分类课件.pptx VIP
- 2025年华医网继续教育CRRT在急诊重症患者中的临床应用答案.docx VIP
文档评论(0)