- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章 简单设计模式及应用 什么是设计模式 模式就是得到很好研究的范例 简单工厂模式 简单工厂模式的原理 简单工厂模式 工厂类:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体的类实现。 抽象产品角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或她们共同拥有的接口。一般由接口或抽象类实现。 ?具体产品角色:工厂方法模式所创建的任何对象都是这个角色的实例,由具体类实现。 简单工厂模式优缺点 模式的核心是工厂类,这个类负责产品的创建,而客户端可以免去产品创建的责任,这实现了责任的分割。但由于工厂类集中了所有产品创建逻辑的,如果不能正常工作的话会对系统造成很大的影响。如果增加新产品必须修改工厂角色的源码。 设计模式的意义 提高软件的可复用性 里氏替换原则 is与as操作符 is 检查对象是否与指定类型兼容 为什么需要抽象工厂设计模式 什么是抽象工厂设计模式 什么是抽象工厂设计模式 抽象工厂角色:担任这个角色的是工厂方法模式的核心,它是与应用系统的商业逻辑无关的。通常使用接口或抽象类实现。 具体工厂角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。通常使用具体的类实现。 抽象产品角色:担任这个角色的类是抽象工厂方法模式所创建的对象的父类,或它们共同拥有的接口。通常使用接口或抽象类实现这一角色。 具体产品角色:抽象工厂模式所创建的任何产品对象都是某一具体产品类的实例。这是客户端最终需要的东西。通常使用具体类实现这个角色。 什么是抽象工厂设计模式 什么是抽象工厂设计模型 提供一个创建一系列相关或相互依赖对象的接口,无需指定它们具体的类 使用抽象工厂模式 一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。 这个系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。 同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。 系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现。 如何使用抽象工厂设计模式 应用示例 小结 什么是面向对象设计模式? 什么是抽象工厂设计模式? * * ZJWCHC 走为上 围魏救赵 声东击西 设计模式是软件开发过程中经验的积累 特定问题的经过实践检验的特定解决方法 父类产品 子类产品A 子类产品B 子类产品C 工厂 客户 灵活,适应软件设计的变化 面向对象在实际应用中集中体现 //… Student stu1 = new Student(); Student stu2 = new Student(); ListPerson person = new ListPerson(); person.Add(stu1); person.Add(stu2); //… 子类对象可以替换父类 里氏替换原则(LSP) 子类的对象能够替换其父类 父类对象不能够替换子类 父类的方法都要在子类中实现或者重写 if (person[i] is Student) 判断person集合的元素是否是Student对象 as 用于在兼容的引用类型之间执行转换 for (int i = 0; i Students.Count; i++) { Student stu = Students[i] as Student; Console.WriteLine(stu.Name); } 转换失败返回值为空 一种类型转换方式 父类产品 子类产品A 子类产品B 子类产品C 工厂 客户 :简单工厂设计模式原理结构 什么是抽象工厂设计模式 抽象工厂 实体工厂2 实体工厂1 抽象产品A 抽象产品B 实体产品B1 实体产品B2 实体产品A1 实体产品A2 客户 :抽象工厂设计模式原理结构 1、提供一系列相互依赖对象的创建工作 2、封装对象常规的创建方法(new) 3、提供统一调用数据访问方法的方式 4、避免调用数据访问方法和具体对象创建工作的紧耦合 客户请求 抽象工厂 抽象产品 如何用抽象工厂设计模式构建我们的数据访问层? 1、用抽象工厂生产抽象产品 2、用实体工厂生产实体产品 3、用抽象产品提供实体产品访问接口 4、用实体产品实现自己的功能 :抽象工厂设计模式中各个象的主要功能、职责 SQLServer实体工厂 学员抽象产品 抽象工厂 Access实体工厂 管理员抽象产品 Access 学
您可能关注的文档
- 浙江大学嵌入式课件5.ppt
- 浙江大学嵌入式课件6.ppt
- 浙江大学嵌入式课件7.ppt
- 浙江大学嵌入式课件9.ppt
- 浙江大学嵌入式课件10.ppt
- 浙江大学嵌入式课件11.ppt
- 浙江大学嵌入式课件12.ppt
- 浙江大学嵌入式课件13.ppt
- 浙江大学嵌入式课件14.ppt
- 浙江工商大学财务管理课件第八章 权益资本的筹集.ppt
- 浙江水专-计算机信息工程系C#.Net程序设计课件第十三章 文件和注册表操作.ppt
- 浙江水专-计算机信息工程系C#.Net程序设计课件第十一章 使用三层结构开发数据库应用系统.ppt
- 浙江水专-计算机信息工程系C#.Net程序设计课件第十章 WinForm高级编程.ppt
- 浙江水专-计算机信息工程系C#.Net程序设计课件第四章 WinForms基础知识.ppt
- 浙江水专-计算机信息工程系C#.Net程序设计课件第五章 调试、测试和异常处理.ppt
- 浙江水专-计算机信息工程系C#.Net程序设计课件第一章 C#与.NET概述.ppt
- 浙江外国语学院现代汉语通论课件 导论 第二节 现代汉语课程.ppt
- 浙江外国语学院现代汉语通论课件第二章 文字 第二节 现代汉字的字形.ppt
- 浙江外国语学院现代汉语通论课件第二章 文字 第六节 现代汉字标准化和规范化.ppt
- 浙江外国语学院现代汉语通论课件第二章 文字 第七节 现代汉字的信息处理.ppt
最近下载
- 四年级上道德与法治《学会识别广告》教学设计.pdf VIP
- 2024融合大语言模型DeepSeek技术新人教版语文七年级上册《第四单元》大单元整体教学设计[2022课标].pdf
- 监控系统项目完整技术标书.docx VIP
- 临床合理用药解读-质子泵抑制剂的处方和医嘱审核要点解读(PPT课件).pptx VIP
- 山东省化工装置安全试车工作规范 DB37_T 1854—2020 山东.pdf VIP
- 安徽—夏凯月—课件—直线的倾斜角与斜率.pptx VIP
- 房屋租赁合同,房屋租赁合同,房屋租赁合同.docx VIP
- 安徽—夏凯月—设计—直线的倾斜角与斜率.docx VIP
- 业务学习-子宫脱垂.pptx VIP
- 海尔风冷模块样册.pdf
文档评论(0)