肯德基:抽象工厂模式2022优秀文档_第1页
肯德基:抽象工厂模式2022优秀文档_第2页
肯德基:抽象工厂模式2022优秀文档_第3页
肯德基:抽象工厂模式2022优秀文档_第4页
肯德基:抽象工厂模式2022优秀文档_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章肯德基:笼统工厂方式3.1发生在肯德基的故事3.2方式定义3.3故事中的方式分析3.4故事的笼统工厂方式实现3.5设计原那么3.6运用场所3.7本章要点3.1发生在肯德基的故事图3-1肯德基商标3.2方式定义笼统工厂方式〔AbstractFactoryPattern〕提供了一个接口,用于创建相关或者依赖对象的家族,而不需求指定详细实现类。笼统工厂方式允许客户运用笼统接口来创建一组相关的产品,客户类和工厂类分开,客户需求任何产品的时候,只需求向工厂恳求即可,客户无须修正就可以获得新产品。3.3故事中的方式分析3.3.1故事中的角色各自对应的角色如下所示:肯德基店—消费食物的工厂食物〔麻辣鸡腿汉堡、奥尔良烤鸡翅、薯条、可乐〕—工厂消费的产品爸爸、儿子—客户以上三种角色的关系如图3-2所示。3.3.2笼统化分析对图3-2进展笼统化改良,如图3-3〔a〕所示。3.薯条——ChinaFrenchFries图3-1肯德基商标在“custom〞包中新建客户类Customer,客户类中含有一个笼统工厂IKfcFactory类型的实例变量kfcFactory,客户类Customer经过构造方法将肯德基店实例传入,客户需求食物的时候,就向肯德基店〔工厂〕恳求,客户不消费食物〔不运用new生成对象〕。肯德基店—消费食物的工厂各自对应的角色如下所示:2建立不同食物的笼统基类第3章肯德基:笼统工厂方式2.针对笼统编程,不针对实现编程1.笼统食物——AbstractBaseFood各自对应的角色如下所示:3.产品对象经过工厂暴露的方法创建4.可乐——ChinaBeverage对图3-2进展笼统化改良,如图3-3〔a〕所示。各自对应的角色如下所示:3.薯条——ChinaFrenchFries3.3.2笼统化分析如今客户—肯德基—食物三者之间的关系曾经理顺了,下面进展静态化建模,经过类图加深对各个类之间关系的认识,如图3-3〔b〕所示。3.3.3笼统工厂方式的静态建模图3-3〔b〕中所表达的内容是客户需求食物只需向笼统工厂恳求即可,由详细工厂消费详细产品给客户。3.4故事的笼统工厂方式实现3.4.1笼统食物的建立1.笼统食物——AbstractBaseFood2.食物接口——IFood3.4.2建立不同食物的笼统基类1.汉堡基类——Hamburg2.鸡翅基类——ChickenWings3.薯条基类——FrenchFries4.饮料基类——Beverage3.4.3创建详细的食物1.麻辣鸡腿汉堡——ChinaHanburm2.奥尔良烤鸡翅——ChinaChickenWings3.薯条——ChinaFrenchFries4.可乐——ChinaBeverage3.4.4建立工厂1.创建笼统肯德基工厂——IKfcFactory消费笼统食物2.创建详细肯德基工厂——ChinaKfcFactory消费详细食物3.4.5创建客户类——Customer在“custom〞包中新建客户类Customer,客户类中含有一个笼统工厂IKfcFactory类型的实例变量kfcFactory,客户类Customer经过构造方法将肯德基店实例传入,客户需求食物的时候,就向肯德基店〔工厂〕恳求,客户不消费食物〔不运用new生成对象〕。3.5设计原那么1.多用对象组合,少用承继2.针对笼统编程,不针对实现编程3.产品对象经过工厂暴露的方法创建3.6运用场所〔1〕创建产品家族,相关产品集合在一同运用的时候;〔2〕想要提供一个产品类库,并只想显示其接口而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论