软件设计模式的概念及分类

1.设计模式概念

设计模式是以设计复用为目的,采用一种良好定义的、正规的、一致的方式记录的软件设计经验。每条模式关注在一般或特定设计环境中可能重复出现的设计问题,并给出经过充分实践考验的软件解决方案。设计模式包含以下内容:

(1)设计模式的名称。名称应能概观地反映模式蕴含的设计经验,并尽量体现它与业界广泛采用的已有模式之间的关系。

(2)问题。描述模式解决的设计问题,包括问题的背景。

(3)施用条件。描述在何种条件下才推荐使用该模式解决上述问题,以及在使用本模式之前必须考虑的约束条件。

(4)解决方案。这是设计模式的主体部分,描述问题的软件解决方案。

(5)效果。描述上述解决方案导致的正面及负面的设计效果。

(6)示例代码。以特定的程序设计语言或类程序设计语言给出应用本模式的示例代码。

(7)关联模式。说明本模式继承或扩展了哪些模式,与哪些模式关联。

2.设计模式分类

设计模式可以按照以下标准分类:

(1)根据模式提供的解决方案抽象程度,模式自高至低可依次划分为:

①体系结构设计模式。面向整个软件系统或规模较大的软件子系统,给出抽象程度较高的结构化组织方式。

②软件子系统或构件设计模式。面向中等规模的软件子系统或构件,以独立于程序设计语言的方式,给出内部的软件元素(粒度更小、抽象级别更低的子系统或构件)的结构化组织方式。

③面向软件实现的设计模式。针对软件子系统或构件中的某个特定问题,描述如何利用特定的程序设计语言的具体特征来解决此问题。

(2)从模式解决的设计问题的类别看,模式可划分为:

①创建型模式(工厂方法模式、生成器模式)。专门解决复杂对象的创建问题。

②结构型模式(Adapter适配器模式、Bridge桥接模式)。将软件系统、子系统或构件分解为粒度更小的软件元素,规定其职责和协作方式。

③行为型模式(Interpreter解释器、Iterator迭代)。不仅描述软件系统、子系统或构件的内部结构,更强调位于结构中的软件元素在协同解决问题时的通信及控制流模式。

④分布型模式(客户机/服务器构架)。为构件分布于网络中不同计算机的软件系统提供系统结构和远程互操作方法。

⑤适应性模式(微核模式)。专门针对软件系统、子系统或构件的扩展、改进、演进、变更等设计问题提供软件解决方案。

⑥访问控制模式(MVC)。专门针对构件、软件服务或共享资源的访问控制问题提供软件解决方案。

(3)根据模式基于的计算平台类别,模式可划分为:

①独立于计算平台的设计模式。

②面向特定计算平台(如J2EE、.NET等)的设计模式。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/525.html
返回顶部