time 
设为首页】【收藏本站
当前位置: 主页 > 软件工程 > 软件过程 > 设计模式一点通之单态模式

设计模式一点通之单态模式

时间:2009-12-04 22:56 点击:2749次 字体:[ ]




  程序设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解决问题的过程中,一些良好思路的经验集成,最早讲设计模式,人们总会提到 Gof 的著作,它最早将经典的 23 种模式集合在一起说明,对后期学习程序设计,尤其是对从事面向对象程序设计的人们起了莫大的影响。

  设计模式并不直接用来完成程序的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类别或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类别或对象。算法不能算是一种设计模式,因为算法主要是用来解决计算上的问题,而非设计上的问题。设计模式主要是使不稳定的依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。

  后来设计模式一词被广泛的应用到各种经验集成,甚至还有反模式(AntiPattern),反模式教导您如何避开一些常犯且似是而非的程序设计思维。

发展历史

  建筑师克里斯托佛•亚历山大在1977/79年编制了一本汇集设计模式的书。但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。

  肯特•贝克和沃德•坎宁安在1987年,利用克里斯托佛•亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口的生成中。一年后Erich Gamma在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。于此同时James Coplien 在1989年至1991 年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作Advanced C++ Idioms。就在这一年Erich Gamma 得到了博士学位,然后去了美国,在那与Richard Helm, Ralph Johnson ,John Vlissides 合作出版了Design Patterns - Elements of Reusable Object-Oriented Software一书,在此书中共收录了23个设计模式。

  这四位作者在软件开发领域里也以他们的匿名著称Gang of Four(四人帮,简称GoF),并且是他们在此书中的协作导致了软件设计模式的突破。有时这个匿名GoF也会用于指代前面提到的那本书。

表述格式

  表述一个软件设计模式的格式根据作者的不同,划分和名称等都会有所不同。常用的GoF描述模式的格式大致分为以下这些部分:

  ● 模式名:每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。
  ● 问题:在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。
  ● 解决方案:上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。
  ● 别名:一个模式可以有超过一个以上的名称。这些名称应该要在这一节注明。
  ● 动机:该模式应该利用在哪种情况下是本节提供的方案(包括问题与来龙去脉)的责任。
  ● 适用性:模式适用于哪些情况、模式的背景等等。
  ● 结构:这部分常用类图与互动图阐述此模式。
  ● 参与者:这部分提供一份本模式用到的类与物件清单,与它们在设计下扮演的脚色。
  ● 合作:描述在此模式下,类与物件间的互动。
  ● 影响:采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。这部分应描述使用本模式后的结果、副作用、与权衡(trade-off)
  ● 实作:这部分应描述实现该模式、该模式的部分方案、实现该模式的可能技术、或者建议实现模式的方法。
  ● 示例:简略描绘出如何以编程语言来使用模式。
  ● 已知应用:业界已知的实作范例。
  ● 相关模式:这部分包括其他相关模式,以及与其他类似模式的不同。



本文地址 : http://www.fengfly.com/plus/view-159861-1.html
标签: 对象 模式 程序 这个
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: