免费智能真题库 > 历年试卷 > 系统架构设计师 > 2009年下半年 系统架构设计师 上午试卷 综合知识
  第59题      
  知识点:   模式和软件架构
  章/节:   设计模式       

 
(57)的选择是开发一个软件系统时的基本设计决策;(58)是最低层的模式,关注软件系统的设计与实现,描述了如何实现构件及构件之间的关系。引用-计数是C++ 管理动态资源时常用的一种(59)。
 
 
  A.  架构模式
 
  B.  惯用法
 
  C.  设计模式
 
  D.  分析模式
 
 
 

 
  第35题    2013年下半年  
   28%
某系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有..
  第50题    2012年下半年  
   47%
若系统中的某子模块需要为其他模块提供访问不同数据库系统的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是..
  第56题    2020年下半年  
   38%
创建型模式支持对象的创建,该模式允许在系统中创建对象,而不需要在代码中标识特定类的类型,这样用户就不需要编写大量、复杂的..
   知识点讲解    
   · 模式和软件架构
 
       模式和软件架构
        判断模式取得成功的一个重要准则是它们在多大程度上达到了软件工程的目标。模式必须支持复杂的、大规模系统的开发、维护以及演化。
               模式作为架构构造块
               我们已经知道,在开发软件时,模式是处理受限的特定设计方面的有用构造块。因此,对软件架构而言,模式的一个重要目标就是用已定义属性进行特定的软件架构的构造。例如,MVC模式提供了一个结构,用于交互应用程序的用户界面的裁剪。
               软件架构的一般技术,例如使用面向对象特征(如继承和多态性),并没有针对特定问题的解决方案。绝大多数现有的分析和设计方法在这一层次也是失败的。它们仅仅提供构建软件的一般技术,特定架构的创建仍然基于直觉和经验。模式使用特定的面向问题的技术来有效补充这些通用的与问题无关的架构技术。注意,模式不会舍弃软件架构的现有解决方案,相反,它们填补了一个没有被现有技术覆盖的缺口。
               构造异构架构
               单个模式不能完成一个完整的软件架构的详细构造,它仅仅帮助设计师设计应用程序的某个方面,即使正确设计了这个方面,整个架构仍然可能达不到期望的所有属性。为整体上达到软件架构的需求,我们需要一套丰富的涵盖许多不同设计问题的模式。可获得的模式越多,能够被适当解决的设计问题也会越多,并且可以更有力地支持构造带有已定义属性的软件架构。
               为了有效使用模式,我们需要将它们组织成模式系统。模式系统统一描述模式,对它们分类,更重要的是,说明它们之间如何交互。模式系统也有助于设计师找到正确的模式来解决一个问题或确认一个可选解决方案。这和模式目录相反,在模式目录中每个模式描述的多少与别的模式无关。
               模式和方法
               好的模式描述也包含它的实现指南,可将其看成是一种微方法,用来创建解决一个特定问题的方案。通过提供方法的步骤来解决软件开发中的具体再现问题,这些微方法补充了通用的但与问题无关的分析和设计方法。
               模式的实现
               从模式与软件架构的集成中产生的另一个方面是用来实现这些模式的一个范例。目前的许多软件模式具有独特的面向对象风格。所以,人们往往认为,能够有效实现模式的唯一方式是使用面向对象编程语言,其实不然。
               一方面,许多模式确实使用了诸如多态性和继承性等面向对象技术。策略模式和代理模式是这种模式的例子;另一方面,面向对象特征对实现这些模式并不是最重要的。例如,在C语言中实现策略模式可以通过采用函数指针来代替多态性和继承性。
               在设计层次,大多数模式只需要适当的编程语言的抽象机制,如模块或数据抽象。因此,可以用几乎所有的编程范例并在几乎所有的编程语言中来实现模式。另外,每种编程语言都有它自己特定的模式,即语言的惯用法。这些惯用法捕获了现有的有关该语言的编程经验并为它定义了一个编程风格。
   题号导航      2009年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第59题    在手机中做本题