许多人应该听过设计模式(Design pattern),或多或少地看到或使用过设计模式,但是在开发过程中的实际使用总是感觉没有足够的力量。设计模式必须是对设计模式的轻微偏离或理解不足。当然也有许多人没有听说过设计模式,今天我们这里不讨论特定的模型,先来看看具体的设计模式到底是什么?设计模式的表述格式怎么划分的?
设计模式是什么?
设计模式(英语 design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。
随着软件开发社群对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而且Ward Cunningham为此发明了WikiWiki用来交流设计模式的经验。
设计模式的表述格式怎么划分的?
表述一个软件设计模式的格式根据作者的不同,划分和名称等都会有所不同。常用的描述模式的格式大致分为以下这些部分:
模式名:每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。
问题:在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。
解决方案:上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。
别名:一个模式可以有超过一个以上的名称。这些名称应该要在这一节注明。
动机:在哪种情况使用该模式,是本节提供的方案(包括问题与来龙去脉)的责任。
适用性:模式适用于哪些情况、模式的背景等等。
结构:这部分常用类图与交互图阐述此模式。
参与者:这部分提供一份本模式用到的类与对象清单,与它们在设计下扮演的角色。
合作:描述在此模式下,类与对象间的交互。
影响:采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。这部分应描述使用本模式后的结果、副作用、与权衡(trade-off)。
实现:这部分应描述实现该模式、该模式的部分方案、实现该模式的可能技术、或者建议实现模式的方法。
示例:简略描绘出如何以编程语言来使用模式。
已知应用:业界已知的实现示例。
相关模式:这部分包括其他相关模式,以及与其他类似模式的不同。
上述就是关于设计模式是什么,以及设计模式的表述格式怎么划分的全部内容介绍,想了解更多关于设计模式的信息,请继续关注。