正确答案:
题目:某公司欲开发一门户网站,将公司的各个分公司及办事处信息进行整合。现决定采用Composite设计模式来实现公司的组织结构关系,并设计了如图12-18所示的UML类图。图中与Composite模式中的Component角色相对应的类是(1),与Composite角色相对应的类是(2)。
解析:本题考查组合模式相关的知识。图12-19为组合模式的UML图例。与题目给出的图例进行匹配可得出。
查看原题 查看所有试题
学习资料的答案和解析:
[单选题]在企业应用系统开发中,方法调用(Method Invocation)和消息(Messaging)机制是两种常用的数据处理与交换方式,下面关于这两种机制的描述,不正确的是()
从效率方面考虑,一般情况下消息机制比方法调用更有优势
解析:方法调用是指当某个事件发生时,调用某个对象的方法来处理事件。消息机制是指当某个事件发生时,把相关的消息发送给某些对象(一个或多个),相关对象捕获消息后,进行相应的处理。从以上定义可以看出,方法调用一般具有同步特性,而消息机制具有异步的特点。在消息调用机制中,消息是通过消息总线进行发送的,可以支持多个数据的发送者和接收者,更加灵活。从效率方面考虑,由于方法调用指定调用某个对象的方法,同步进行,所以效率要高一些。而消息机制由于采用异步方法,数据不一定得到很快的处理,具体要根据接收消息的对象的处理情况,所以一般情况下效率会低一些。但是,从可靠性方面考虑,由于消息机制是通过系统总线来完成,且可能有多个接收者,所以比方法调用更有优势。
[单选题]某公司欲开发一种工业机器人,用来进行汽车零件的装配。公司的架构师经过分析与讨论,给出了该机器人控制软件的两种候选架构方案:闭环控制和分层结构。以下对于这两种候选架构的选择理由,错误的是()
应该采用闭环控制架构,因为闭环结构给出了将软件分解成几个协作构件的方法,这对于复杂任务特别适合
解析:采用闭环结构的软件通常由几个协作构件共同构成,且其中的主要构件彼此分开,能够进行替换与重用,但闭环结构通常适用于处理简单任务(如机器装配等),并不适用于复杂任务。分层结构的特点是通过引入抽象层,在较低层次不确定的实现细节在较高层次会变得确定,并能够组织层间构件的协作,系统结构更加清晰。
[单选题]采用以架构为核心的软件开发方法,在建立软件架构的初期,首要任务是选择一个合适的(1),在此基础上,开发人员通过架构模型,可以获得关于(2)的理解,为将来的架构实现与演化过程建立了目标。
解析:本题主要考查以架构为核心的软件系统开发方法。在该方法中,架构用来激发和调整设计策略,不同的视图用来表达与质量目标有关的信息。架构设计是一个迭代过程,在建立软件架构的初期,选择一个合适的架构风格是首要的,在此基础上,开发人员通过架构模型,可以获得关于软件架构属性的理解,为将来的架构实现与演化过程建立了目标。
[单选题]回调(Call Back)函数是面向过程的程序设计语言中常用的一种机制,而设计模式中的(1)模式就是回调机制的一个面向对象的替代品。该模式的意图是(2)。
解析:Command(命令)模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。Command模式抽象出待执行的动作以参数化某对象,我们可用面向过程语言中的回调函数表达这种参数化机制。所谓回调函数,是指函数先在某处注册,而它将在稍后某个需要的时候被调用。Command模式是回调机制的一个面向对象的替代品。Command模式在不同的时刻指定、排列和执行请求。一个Command对象可以有一个与初始请求无关的生存期。如果一个请求的接收者可用一种与地址空间无关的方式表达,那么就可将负责该请求的命令对象传送给另一个不同的进程并在那里实现该请求。Command模式支持取消操作。Command模式的Excute操作可在实施操作前将状态存储起来,在取消操作时这个状态用来消除该操作的影响。Command接口必须添加一个Unexecute操作,该操作取消上一次Execute调用的效果。执行的命令被存储在一个历史列表中。可通过向后和向前遍历这一列表并分别调用Unexecute和Execute来实现重数不限的"取消"和"重做"。Command模式支持修改日志,这样当系统崩溃时,这些修改可以被重做一遍。在Command接口中添加装载操作和存储操作,可以用来保持变动的一个一致的修改日志。从崩溃中恢复的过程包括从磁盘中重新读入记录下来的命令并用Execute操作重新执行它们。Command模式用构建在原语操作上的高层操作构造一个系统。这样一种结构在支持事务的信息系统中很常见。一个事务封装了对数据的一组变动。Command模式提供了对事务进行建模的方法。Command模式有一个公共的接口,可以用同一种方式调用所有的事务。同时,使用该模式也易于添加新事务以扩展系统。
[单选题]如图8-40(a)所示的UML类图描绘的是设计模式中的(1)模式。如图8-40(b)所示的UML类图描述了该模式的一种应用,其中与图8-40(a)中的"Creator"对应的类是(2)。
解析:Command模式将一个请求封装为一个对象,从而将不同的请求对数化并进行排队或登记,以支持撤销操作。FactoryMethod模式定义一个创建对象的接口,但由子类决定需要实例化哪一个类。Composite模式将对象组成树结构来表示局部和整体的层次关系。客户可以统一处理单个对象和对象组合。ClassAdapter模式将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作。
[单选题]某软件公司欲开发一个Windows平台上的公告板系统。在明确用户需求后,该公司的架构师决定采用Command模式实现该系统的界面显示部分,并设计UML类图,如图8-41所示。图中与Command模式中的"Invoker"角色相对应的类是(1),与"ConcreteCommand"角色相对应的类是(2)。
解析:Command(命令)模式是设计模式中行为模式的一种,它将"请求"封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。Command模式也支持可撤销的操作。Command模式的类图如图8-42所示。对于题目所给出的图,与"Invoker"角色相对应的类是MenuItem,与"ConcreteCommand"角色相对应的类是Open。