第7的章(0-2) 设计模式.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7的章(0-2) 设计模式

软件工程新技术 设计模式 宁夏医科大学 理学院 杨德仁 大纲 引言 来源:建筑学 从建筑学到软件设计 设计模式的目的 为什么设计模式? 什么是设计模式? 有哪些设计模式? 实例 模式的应用前景 The OO Design Pyramid 引言 面向对象 通过抽象、封装、继承和多态降低程序的耦合度 但如何使得这类程序更加灵活、具有自适应性、易于复用? 设计模式 Mainly used in Object Oriented programming Designers reuse solutions, preferably the good ones Experience is what makes one an ‘expert’ Problems are addressed without rediscovering solutions from scratch. “My wheel is rounder also” 引言 好形对围棋非常重要, 形是棋子在棋盘上的几何形状的抽象化, 形是一种模式, 模式化过程旨在把问题抽象化。 引言 Becoming a Software Design Master First learn the rules – e.g., the algorithms, data structures and languages of software Then learn the principles – e.g., structured programming, modular programming, object oriented programming, generic programming, etc. Software engineering, such as software design and implementing. However, to truly master software design, one must study the designs of other masters These designs contain patterns must be understood, memorized, and applied repeatedly There are hundreds of these patterns 来源:建筑学 设计模式产生于建筑学和人类学 Christopher Alexander:质量可以客观评价吗? Alexander, C., Ishikawa, S., Silverstein, M., The Timeless Way of Building, New York: Oxford University Press,1979. 模式的定义:在某一个情景(Context)下问题(Problem)的解决方案(Solution)。 通过可以使用无数次的解决方案、而不必重复的工作方式,模式描述在环境中重复出现的问题及其解决方案。 模式 Alexander发现优质设计的相似之处,并把这些相似之处称为模式。 模式是不断重重复发生,而有其重复性。 重复的不是问题本身,而是问题本质, 把不同问题以相同的模式来处理,势必要提取其本质,也是一种抽象。 研究模式必須重视问题本质而非问题表象。同样问题的背景、环境及解決之道在抽象层次上也是一致的。 来源 Alexander 指出,模式的说明应该包括: 模式名称(Pattern Name):助记名、词汇(描述模式的问题、解决方案和效果)。便于交流和思考,找到恰当的模式名称也是设计模式编目的难点之一。 问题(Problem):描述何时使用模式。 解决方案(Solution):描述设计的组成成分,相互关系及各自职责和写作方式(抽象级别上的,针对一般设计问题)。 效果(Consequences):描述模式应用的效果及使用模式应权衡的问题(时空、灵活性、扩充性、可移植性) 。 来源 复用解决方案:通过复用已经建立的设计,为问题找到更高的起点并避免绕弯路。受益于学习别人的经验。不必再为普通、重复性问题重新设计解决方案。 建立通用的术语:交流与协作都需要共同的词汇、对问题的共同观点。设计模式在项目的分析和设计阶段提供了一个通用参考点。 更高的分析和设计的视角:在问题上、在设计和面向对象的过程中, 模式具有更高层次的视角。这种视角将设计者从“过早处理细节”(与抽象和建模相反) 中解放出来。 从建筑学转移到软件设计模式 Developing software is hard Developing reusable software is even harder Question 软件中是否有反复出现、可以用某种相同方式解决的问题

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档