软件设计模式研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件设计模式研究 1 引言 软件业的发展不仅要求软件有更高的生产率和可靠性,而且对软件的可重用性和可维护性也提出了更高的要求。设计模式以文档的形式把面向对象的软件设计经验记录下来,并予以系统的命名、解释和评价,使开发人员在进行系统的设计与开发时,可以使用别人的成功经验而不必为普通的、重复的问题重新设计解决方案,使设计者更容易理解其设计思路,能为自己的问题找到更合适的解决办法,帮助设计者更快更好地完成系统设计。 面向对象技术是目前最主要的软件开发方法,面向对象的本质特点是抽象。设计模式将面向对象思想应用在各种典型问题的解决方案上,是我们学习面向对象设计的最佳案例。 2 设计模式概述 设计模式就是解决某个特定的面向对象软件问题的特定方法。模式既是一个事物,也是对类似事物的描述。任何对模式要素的规定,除了必须包括问题、解决方案和场景之外,都必须提及可重复性和名称。设计模式是针对面向对象系统中重复出现的问题而提出来的。有经验的面向对象专家在解决问题时,通常先考虑以前解决过的相似问题,并重用其解法的精华来解决问题,这个不断被引用的解法就是通常说的设计模式。可以简单地认为,设计模式就是解决某个特定的面向对象软件问题的特定方法。 每个设计模式都有规范统一的描述语言,以利于其他人使用,实现资源的共享。模式的描述形式通常可以分为两类:一类是经典的自然语言结合 OO 框图的非形式化描述,一类是形式化描述。目前通常采用 Gang of Four(GoF)的非形式化描述形式,包括标题和详述。 GoF 在《设计模式:可复用面向对象软件基础》一书中归纳出设计模式的四个基本要素: ·模式名称:是一个助记名,它用一两个词来描述模式的问题、解决方案和效果。 ·问题:描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述特定的设计问题,如怎样用对象表示算法,也可能描述了导致不灵活设计的类或对象结构,有时侯问题部分还会包括使用模式必须满足的一系列先决条件。 ·解决方案:描述了一个设计的各个组成成分(结构),以及它们之间的相互关系及各自的职责和协作方式。 ·效果:描述了模式使用的效果及使用模式应注意的问题。 3 设计模式与软件体系结构 3.1 软件体系结构的概念 软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,它是由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织(organization)结构和拓扑(topology)结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。软件体系结构是设计抽象的进一步发展,满足了更好地理解软件系统,更方便地开发更大、更复杂的软件系统的需要。 软件体系结构是软件系统开发中十分关键的一个步骤。当今世界的系统不仅复杂而且庞大,如果没有一个合适的体系结构,但是却想要有一个比较成功的设计是不可能的。对于不同的软件系统,设计出的体系结构也应该不同,甚至可以细分到每个不同的子系统都会有不同的结构。系统设计的成败很大程度上就在于如何选择软件体系结构。 3.2 设计模式与软件体系结构的关系 软件体系结构需要确切的标出不同的构件的类型以及它们的之间的相互关系。构件一般都是对应设计程序中的编译单元,连接则一般为表入口、初始化参数、动态数据结构等。并且不同的体系结构具有不同的风格,所以对一些特定的构件、连接以及系统全局的布局都做了定义。设计模式给出的则是软件设计人员定义的基本的系统结构,而不是对系统详细的解。一个设计模式所做的就是提供对一组软件设计问题的通用解的基本框架,并不是一种通过预定义就可以拿来用的设计模块。设计人员需要依照使用的一般需求去实现说定义的设计模式。设计模式与软件体系结构的区别在于: ·软件体系结构描述了各种各样的系统设计,并不限于面向对象系统,设计模式目前主要研究面向对象系统。 ·软件体系结构主要集中于系统全局的构造(构件类型、连接类型、规则和约束),设计模式着重解决粒度更小的、更为具体的设计问题。 ·软件体系结构提供了更为精确(形式化)的描述语言,而设计模式的形式化研究刚刚起步。 他们都强调设计的重用,有时把设计模式看成是小粒度的软件体系结构。 4 设计模式与软件框架 如今,很多的程序员经常把软件框架和设计模式混淆。实际上框架与设计模式大多是来源于对解决问题的一般应用,来源于很多应用中所获得的实践经验总结。但是软件框架与设计模式却是两个不同的概念,当然有不同的含义。 软件框架应该是设计模式的特殊化、实例化,它是针对于某个特定的领域中使用的。设计模式表示的是软件开发人员在开发的过程中在特定的场景下去解决重复发生问题的方案。每个设计模式都集中在某个特定的面向对象设计问题,描述了设计人员该在什么情况下使用它,

文档评论(0)

annylsq + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档