免费智能真题库 > 历年试卷 > 软件设计师 > 2019年下半年 软件设计师 上午试卷 综合知识
  第46题      
  知识点:   设计模式
  关键词:   SQL语句   表达式   关系代数        章/节:   面向对象基础知识       

 
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。该绘图软件的扩展性要求将不断扩充新的图形和新的绘图程序。以绘制直线和圆形为例,得到如下图所示的类图。该设计采用(44)模式将抽象部分与其实现部分分离,使它们都可以独立地变化。其中,(45)定义了实现类的接口。该模式适用于(46)的情况,该模式属于(47)模式。
 
 
  A.  不希望在抽象和它的实现部分之间有一个固定的绑定关系
 
  B.  想表示对象的部分一整体层次结构
 
  C.  想使用一个己经存在的类,而它的接口不符合要求
 
  D.  在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
 
 
 

 
  第44题    2018年下半年  
   61%
假设现在要创建一个简单的超市销售系统,顾客将毛巾、饼干、酸奶等物品(Item)加入购物车(Shopping_Cart),在收银台(Checkout..
  第46题    2010年下半年  
   25%
下面的UML类图描绘的是(46)设计模式。关于该设计模式的叙述中,错误的是(47)。

  第47题    2016年下半年  
   25%
(46)模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。以下(47)情况适合选用该模式。
①..
   知识点讲解    
   · 设计模式
 
       设计模式
               设计模式的要素
               设计模式一般有以下4个要素。
               (1)模式名称(Pattern Name)。一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了设计词汇。设计模式允许在较高的抽象层次上进行设计。基于一个模式词汇表,就可以讨论模式并在编写文档时使用它们。模式名可以帮助人们思考,便于人们与其他人交流设计思想及设计结果。
               (2)问题(Problem)。描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,可能描述了特定的设计问题,如怎样用对象表示算法等;也可能描述了导致不灵活设计的类或对象结构。
               (3)解决方案(Solution)。描述了设计的组成成分、它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。
               (4)效果(Consequences)。描述了模式应用的效果及使用模式应权衡的问题。尽管描述设计决策时并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。
               创建型设计模式
               创建型模式抽象了实例化过程。它们可以帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。
               创建型模式中有两个不断出现的主旋律:第一,它们都将关于该系统使用哪些具体的类的信息封装起来;第二,它们隐藏了这些类的实例是如何被创建和放在一起的。整个系统关于这些对象所知道的是由抽象类所定义的接口。因此,创建型模式在什么地方被创建、谁创建它、它是怎样被创建的以及何时创建这些方面给予了很大的灵活性。它们允许用结构和功能差别很大的"产品"对象配置一个系统。配置可以是静态的(即在编译时指定),也可以是动态的(在运行时)。
               结构性设计模式
               结构性模式涉及如何组合类和对象以获得更大的结构。结构性模式采用继承机制来组合接口或实现。结构性对象模式不是对接口和实现进行组合,而是描述了如何对一些对象进行组合,从而实现新功能的一些方法。
               Composite模式是结构性对象模式的一个实例。它描述了如何构造一个类层次式结构,这一结构由两种类型的对象所对应的类构成。
               Flyweight模式为共享对象定义了一个结构。至少有两个原因要求对象共享,即效率和一致性。Flyweight模式的对象共享机制主要强调对象的空间效率。使用很多对象的应用必须考虑每一个对象的开销。
               Facade模式描述了如何用单个对象表示整个子系统。模式中的Facade用来表示一组对象,Facade的职责是将消息转发给它所表示的对象。
               Bridge模式将对象的抽象和其实现分离,从而可以独立地改变它们。
               Decorator模式描述了如何动态地为对象添加职责。这一模式采用递归方式组合对象,允许添加任意多的对象职责。
               行为设计模式
               行为模式涉及算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻画了在运行时难以跟踪的复杂控制流。它们将你的注意力从控制流转移到对象间的联系方式上来。
               行为类模式使用继承机制在类间分派行为,主要有TemplateMethod和Interpreter两种模式。
               行为对象模式使用对象复合而不是继承。一些行为对象模式描述了一组对等的对象怎样相互协作以完成其中任一个对象都无法单独完成的任务。
               Observer模式定义并保持对象间的依赖关系。典型的Observer的例子就是Smalltalk中的模型/视图/控制器,其中一旦模型的状态发生变化,模型的所有视图都会得到通知。
               其他的行为对象模式常将行为封装在一个对象中,并将请求指派给它。
   题号导航      2019年下半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第46题    在手机中做本题