模式和软件架构
被考次数: 5次
被考频率: 中频率
答错率:    49%
知识难度:
考试要求: 掌握     
知识路径:  > 软件架构基础知识  > 设计模式  > 设计模式


本知识点历年真题试卷分布
>> 试题列表    
 

 
       判断模式取得成功的一个重要准则是它们在多大程度上达到了软件工程的目标。模式必须支持复杂的、大规模系统的开发、维护以及演化。
       模式作为架构构造块
       我们已经知道,在开发软件时,模式是处理受限的特定设计方面的有用构造块。因此,对软件架构而言,模式的一个重要目标就是用已定义属性进行特定的软件架构的构造。例如,MVC模式提供了一个结构,用于交互应用程序的用户界面的裁剪。
       软件架构的一般技术,例如使用面向对象特征(如继承和多态性),并没有针对特定问题的解决方案。绝大多数现有的分析和设计方法在这一层次也是失败的。它们仅仅提供构建软件的一般技术,特定架构的创建仍然基于直觉和经验。模式使用特定的面向问题的技术来有效补充这些通用的与问题无关的架构技术。注意,模式不会舍弃软件架构的现有解决方案,相反,它们填补了一个没有被现有技术覆盖的缺口。
       构造异构架构
       单个模式不能完成一个完整的软件架构的详细构造,它仅仅帮助设计师设计应用程序的某个方面,即使正确设计了这个方面,整个架构仍然可能达不到期望的所有属性。为整体上达到软件架构的需求,我们需要一套丰富的涵盖许多不同设计问题的模式。可获得的模式越多,能够被适当解决的设计问题也会越多,并且可以更有力地支持构造带有已定义属性的软件架构。
       为了有效使用模式,我们需要将它们组织成模式系统。模式系统统一描述模式,对它们分类,更重要的是,说明它们之间如何交互。模式系统也有助于设计师找到正确的模式来解决一个问题或确认一个可选解决方案。这和模式目录相反,在模式目录中每个模式描述的多少与别的模式无关。
       模式和方法
       好的模式描述也包含它的实现指南,可将其看成是一种微方法,用来创建解决一个特定问题的方案。通过提供方法的步骤来解决软件开发中的具体再现问题,这些微方法补充了通用的但与问题无关的分析和设计方法。
       模式的实现
       从模式与软件架构的集成中产生的另一个方面是用来实现这些模式的一个范例。目前的许多软件模式具有独特的面向对象风格。所以,人们往往认为,能够有效实现模式的唯一方式是使用面向对象编程语言,其实不然。
       一方面,许多模式确实使用了诸如多态性和继承性等面向对象技术。策略模式和代理模式是这种模式的例子;另一方面,面向对象特征对实现这些模式并不是最重要的。例如,在C语言中实现策略模式可以通过采用函数指针来代替多态性和继承性。
       在设计层次,大多数模式只需要适当的编程语言的抽象机制,如模块或数据抽象。因此,可以用几乎所有的编程范例并在几乎所有的编程语言中来实现模式。另外,每种编程语言都有它自己特定的模式,即语言的惯用法。这些惯用法捕获了现有的有关该语言的编程经验并为它定义了一个编程风格。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有