- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.1? 设计模式概述
重复遇到的典型问题,描述这些共同问题 和 解决这些问题的方案 就形成了所谓的 模式。
7.1.1? 设计模式的历史
模式分为几个部分:特定的情景(Context),指模式在 何种情况下发生作用;动机(System of Force),指问题或预期的目标;解决方案(Solution),平衡各动机 或 解决所阐述问题的 构造或配置。
每个模式描述了一个在某种特定情境下不断重复发生的问题,以及解决该问题解决方案的核心所在。
7.1.2? 为什么要使用设计模式
面向对象设计时需要考虑 封装性、力度大小、依赖关系、灵活性、可重用性 等。
1、简化并加快快设计
无需从底层做起,重用成功的设计,节约开发时间,提高软件质量。
2、方便开发人员之间的通信
可以更准确地 描述问题 及 问题的解决方案,使解决方案具有一致性。
3、降低风险
4、有助于转到面向对象技术
开发人员对新技术往往会有抵触或排斥心理,对新技术可能带来的效果持怀疑态度。
成熟的设计模式具有以下特性:
1.巧妙。
2.通用,不依赖于 系统、语言、领域。
3.不仅仅停留在理论上。
4.简单。
5.可重用。
6.面向对象。
7.1.3? 设计模式的组成元素
1、模式名,简洁地描述了 模式的本质,可以帮助我们思考。
2、问题或意图,解释了设计问题和问题存在的前因后果,可能描述了特定的设计问题。
3、情景,告诉我们该模式的适用性。
4、动机,描述相关的动机和约束,通常需要对各期望的目标进行有限排序,动机阐明了问题的复杂性,定义了在相互冲突时所采取的各种权衡手段。
5、解决方案,因为模式就像一个模板,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的 抽象描述 和怎样用一个 具有一般意义的 元素组合。
6、示例,帮助读者理解模式的具体使用方法。
7、结果情景,阐述了模式后续状态和副作用。
8、基本原理,解释该模式 如何、为何 能解决当前问题。
9、相关模式,包括 静态的 和 动态的,迁到模式、后续模式、替代模式。
10、已知应用,通常好的模式前面都有一个摘要,提供简短的总结和概述,为模式描绘出一个清晰的图画,提供有关该模式能够解决问题的快速信息。
模式应该说明它的目标读者,以及对读者有哪些知识要求。
7.1.4? 设计模式的分类
软件模式 主要可分为 设计模式、分析模式、组织和过程模式 等。
设计模式主要用于 得到简洁灵活的 系统设计。
按设计模式的目的划分,创建型、结构型、行为型;按设计模式范围划分,类设计模式、对象设计模式。
1、创建型模式,对对象实例化过程的 抽象,采用抽象类所定义的接口,封装了对象如何创建、组合 等信息。2、结构型模式,如何组合已有的类和对象 以及获得更大的结构。3、行为型模式,不仅描述对象或类的模式,还描述它们之间的通信模式,特别是描述一组 对等的对象怎样互相协作 完成其中任一对象 无法单独完成的任务。
7.2? 设计模式实例
7.2.1? 创建性模式
通过该了的子类来创建对象的。但是,这可能会 限制在系统内创建对象的 类型或数目。
1、Abstract Factory 模式
在不指定具体类的情况下,为创建一些列 相关 或 相互依赖的对象提供了接口。
提供了一个可以 确定合适的具体类 的抽象类。
优点:
可以与具体类分开。更容易在产品系列中转换。提高了产品间的一致性。
以下情况应该使用 Abstract Factory 模式:
系统独立于产品的 创建、组成、表示。系统配置成 具有多个产品的 系列。相关产品对象系列 是共同使用的,而且必须确保这一点。你希望提供产品的类库,只开放其接口。
2、Builder 模式
将复杂对象的 构件与表示 相分离,相同的构造过程可以创建不同的对象,通过只指定对象的 类型和内容。
一次就可以创建所有的复杂对象,而其他模式一次就只能创建一个对象。
优点:
可以对产品内部表示进行改变。将构造代码与表示代码相分离。
以下情况应该使用 Builder 模式:
算法独立于 组成对象。构造过程必须允许已构件对象有不同表示。
3、Factory Method 模式
实例化工作交给其子类,可以在不修改代码的情况下引入新类,因为新类只实现了接口。
优点:
代码只处理接口,因此可以使用任何实现了接口的类。在类中创建对象比直接在客户端创建要更加灵活。
以下情况中,应该使用 Factory Method 模式:
类不能预料它必须创建的对象的类。类希望其子类指定要创建的对象。类将责任转给某个帮助子类,而用户希望定位那个被授权的帮助子类。
4、Prototype 模式
只要将对象类定义成能够复制自身就可以实现。
优点如下:
可以在运行时 添加或删除产品。通过改变值 指定新对象。通过
您可能关注的文档
- 发动机的冷却系统原理及结构.doc
- 分辨显卡好坏方法.doc
- 分布式数据库系统复习材料.doc
- 复习测验3.doc
- 高级数控车工知识考题-SKC020926(附答案).doc
- 高考政体验磨练治第一轮复习学案.doc
- 高校一卡通维护技术浅谈.doc
- 公司组织架构图及岗位职责.doc
- 故障维修部分.doc
- 关于构建333x上城区.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 悬挑脚手架、落地脚手架安全专项施工方案.doc VIP
- 分级护理制度精编PPT课件.pptx VIP
- 梁德清体育活动等级量表(PARS-3)及评定标准.doc VIP
- 建筑施工技术(千年土木 小筑拾遗)知到课后答案智慧树章节测试答案2025年春潍坊工程职业学院.docx VIP
- ABB.ACS580替换550指南了解.pdf VIP
- 2025年公需课《人工智能赋能制造业高质量发展》试题及答案.doc VIP
- 建筑施工技术(千年土木 小筑拾遗)智慧树知到期末考试答案章节答案2024年潍坊工程职业学院.docx VIP
- 2023兖矿能源定向委培考试.pdf
- 潮汕工夫茶调研报告.docx VIP
- 生活中的物理问题“生活中的物理”探究.pptx VIP
文档评论(0)