|
知识路径: > 软件架构基础知识 > 设计模式 > 设计模式 >
|
考试要求:掌握
相关知识点:11个
|
|
|
|
一般来说,一个模式有4个基本成分,分别是模式名称、问题、解决方案和效果。
|
|
|
(1)模式名称。每个模式都有一个名字,帮助我们讨论模式和它所给出的信息。模式名称通常用来描述一个设计问题、它的解法和效果,由一到两个词组成。模式名称的产生使我们可以在更高的抽象层次上进行设计并交流设计思想。
|
|
|
(2)问题。问题告诉我们什么时候要使用设计模式、解释问题及其背景。例如,MVC(Model-View-Controler,模型-视图-控制器)模式关心用户界面经常变化的问题。它可能描述诸如如何将一个算法表示成一个对象这样的特殊设计问题。在应用这个模式之前.也许还要给出一些该模式的适用条件。
|
|
|
(3)解决方案。解决方案描述设计的基本要素,它们的关系、各自的任务以及相互之间的合作。解决方案并不是针对某一个特殊问题而给出的。设计模式提供有关设计问题的一个抽象描述以及如何安排这些基本要素以解决问题。一个模式就像一个可以在许多不同环境下使用的模板,抽象的描述使我们可以把该模式应用于解决许多不同的问题。
|
|
|
模式的解决方案部分给出了如何解决再现问题,或者更恰当地说是如何平衡与之相关的强制条件。在软件架构中,这样的解决方案包括两个方面。
|
|
|
第一,每个模式规定了一个特定的结构,即元素的一个空间配置。例如,MVC模式的描述包括以下语句:“把一个交互应用程序划分成3部分,分别是处理、输入和输出”。
|
|
|
第二,每个模式规定了运行期间的行为。例如,MVC模式的解决方案部分包括以下陈述:“控制器接收输入,而输入往往是鼠标移动、点击鼠标按键或键盘输入等事件。事件转换成服务请求,这些请求再发送给模型或视图”。
|
|
|
:解决方案不必解决与问题相关的所有强制条件,而可以集中于特殊的强制条件,对于剩下的强制条件进行部分解决或完全不解决,特别是在强制条件相互矛盾的情况下。
|
|
|
(4)效果。效果描述应用设计模式后的结果和权衡。比较与其他设计方法的异同,得到应用设计模式的代价和优点。对于软件设计来说,通常要考虑的是空间和时间的权衡。也会涉及到语言问题和实现问题。对于一个面向对象的设计而言,可重用性很重要,效果还包括对系统灵活性、可扩充性及可移植性的影响。明确看出这些效果有助于理解和评价设计模式。
|
|
|