网站大量收购闲置独家精品文档,联系QQ:2885784924

软件设计模式入门.ppt

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

设计模式导论模式与设计模式描述设计模式应用设计模式解决问题选择设计模式使用设计模式常用设计模式分析课程目标体验项目——绘图程序中对几何对象的处理该项目使用SimpleFactory模式(简单工厂模式)来处理这些几何对象。为这些几何图形定义一个公共的父类和一些公共的方法,类间的关系如图所示:Shape是一个抽象类,Circle和Rectangle类是Shape的两个具体实现,“工厂”类ShapeFactory用于创建各种几何图形的具体实例。比如要求开发一个绘图程序,用来绘制简单的几何图形。如圆、矩形等,那么在程序中该如何处理这些几何对象呢? ChristopherAlexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需再重复相同的工作。模式与设计模式一般,模式存在如下的基本要素:名称:每个模式都有一个独一无二的名称,通过名称来鉴别不同的模式。问题:模式试图解决的问题。解决方案:对于某个情景中的问题,模式提供的解决问题的方法。效果:使用模式后所达到的效果,使用模式的同时研究其约束。意图:模式的目的。参与者和协作者:模式所包含的实体。实现:怎样实现模式。实现是模式的具体表现形式,而不能像模式本身那样被分析。描述设计模式常用的描述模式的格式大致可分为以下部分:我们怎样来描述设计模式呢?采用图形概念吗?图形概念固然很重要、很有用,但这还远远不够。因为它们仅仅简单的表达了类和对象之间的关系,这是设计过程的最终产品。为了设计重用,我们还必须记录决策过程、替代方案等。一般我们用统一的格式来描述设计模式,每一种模式都按以下的模版分成多个部分。每个部分的模版使用统一的信息结构,便于设计模式的学习、比较和使用。添加标题模式名和分类(PatternNameandClassification):模式名简洁的表达了模式的本质。好的命名非常重要,因为它将会成为你的部分设计术语(词汇)。添加标题意图(Intent):主要描述设计模式的作用?其基本原理和目的是什么?它针对哪些特殊的设计问题?添加标题别名(Byname):如果某个模式有其它的名称,那么该模版部分就指出了该模式的这个名称。添加标题适用性(Applicability):指出模式适用于哪些情况?该模式可用于对那些不良的设计进行改进,以及怎么才能识别这种情况?添加标题动机(Motivation):指出可能存在的设计问题以及怎样使用该模式中的类和对象来解决该问题的情景。这个情景能帮助你理解对该模式更高层的抽象描述。添加标题实现(Implementation):指出在实现该模式时,应当具备的前提和技术,以及该模式有什么缺陷?是否具有与语言无关的特性?添加标题结果(Consequences):指出模式达成目标的程度、应用该模式的结果和费用,以及系统结构是否允许你改变其中的某个或某些方面,具体是哪些方面?添加标题协作(Collaboration):指出参与者为了完成各自的职责应该如何协作。添加标题参与者(Participants):指出参与该模式的类和对象以及各自的职责。添加标题结构(Structure):指出基于对象模型技术(OMT)对该模式的图形表示,以及使用交互图(对象间请求流程的示意图)来表示对象的请求顺序和协作。例程(SampleCode):指出如何使用编程语言来实现该模式。已知应用(KnownUses):指出实际系统中已经使用了该模式的例子,一般至少包括两个不同领域的例子。相关模式(RelatedPatterns):指出哪些设计模式与该模式紧密相关?有什么重要的不同?以及该模式应当与哪个或哪些模式一起应用。添加标题添加标题添加标题 对于面向对象设计者经常遇到的一些问题,设计模式可采用多种方法来解决,比如对变化性的封装就是许多设计模式的主题,以下列举了这些问题中的几种。应用设计模式解决问题寻找合适的对象指定对象的接口描述对象的实现运行时刻和编译时刻的结构决定对象的粒度运用复用机制设计应支持变化设计模式可以确保系统能以特定的方式变化,从而避免重新设计。寻找合适的对象面向对象程序由对象组成,对象包含数据和方法。对象的内部数据和方法是被封装的,不能被直接访问,它的表示对于对象外部是不可见的,客户只能通过对象的请求执行相应的操作。面向对象设计最困难的部分是将系统分解成对象集合。因为在分解的同时需要考虑许多因素:封装、粒度、依赖关系、灵活性、性能、

文档评论(0)

SYWL2019 + 关注
官方认证
内容提供者

权威、专业、丰富

认证主体四川尚阅网络信息科技有限公司
IP属地北京
统一社会信用代码/组织机构代码
91510100MA6716HC2Y

1亿VIP精品文档

相关文档