如图(a)所示的UML类图描绘的是设计模式中的______模式。如图(b)所示的UML类图描述了该模式的一种应用,其中与图(a)中的“Creator”对应的类是______。
单选题
- A.Command
- B.Factory Method
- C.Composite
- D.Class Adapter
单选题
- A.Bank
- B.Account
- C.Checking
- D.Savings
【正确答案】
A
【答案解析】[解析] Command模式将一个请求封装为一个对象,从而将不同的请求对数化并进行排队或登记,以支持撤销操作。
Factory Method模式定义一个创建对象的接口,但由子类决定需要实例化哪一个类。
Composite模式将对象组成树结构来表示局部和整体的层次关系。客户可以统一处理单个对象和对象组合。
Class Adapter模式将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作。
单选题
设计模式(Design
Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。下面关于设计模式所倡导的基本原则的描述,错误的是______。
- A.模块应对扩展开放,而对修改关闭
- B.优先使用继承,而不是组合
- C.要针对接口编程,而不是针对实现编程
- D.抽象不应该依赖于细节,细节应当依赖于抽象
【正确答案】
B
【答案解析】[解析] 设计模式所倡导的基本原则如下。
①开闭原则:一个软件实体应当对扩展开放,对修改关闭。在设计一个模块时,应当使这个模块可以在不被修改的情况下被扩展。关键在于抽象,抽象层要预见所有可能的扩展,因此,抽象层在任何扩展情况下都不会改变,即对修改关闭。同时,由于从抽象层导出一个或多个新类,可以有不同的实现,改变系统的的行为,此即为对扩展开发。简而言之,抽象层对修改关闭,通过扩展实现改变系统行为。
②里氏代换原则:任何基类可以出现的地方,子类一定可以出现。
③依赖原则:要依赖于抽象,而不是具体实现。也可以这样说,要针对接口编程,不要针对实现编程。
④接口分离原则:应当为客户端提供尽量小的单独的接口,而不是提供大的接口。
⑤组合复用原则:要尽量使用组合,而不是继承关系达到复用目的。
⑥迪米特法则:又叫最少知识法则,就是说一个对象应当对其他对象有尽可能少的了解。
单选题
在企业应用系统开发中,方法调用(Method
Invocation)和消息(Messaging)机制是两种常用的数据处理与交换方式,下面关于这两种机制的描述,不正确的是______。
- A.方法调用一般具有同步特性,而消息机制具有异步的特点
- B.从可靠性方面考虑,消息机制比方法调用更有优势
- C.从效率方面考虑,一般情况下消息机制比方法调用更有优势
- D.消息调用机制可以支持多个数据的发送者和接收者,更加灵活
【正确答案】
C
【答案解析】[解析] 方法调用是指当某个事件发生时,调用某个对象的方法来处理事件。消息机制是指当某个事件发生时,把相关的消息发送给某些对象(一个或多个),相关对象捕获消息后,进行相应的处理。
从以上定义可以看出,方法调用一般具有同步特性,而消息机制具有异步的特点。在消息调用机制中,消息是通过消息总线进行发送的,可以支持多个数据的发送者和接收者,更加灵活。
从效率方面考虑,由于方法调用指定调用某个对象的方法,同步进行,所以效率要高一些。而消息机制由于采用异步方法,数据不一定得到很快的处理,具体要根据接收消息的对象的处理情况,所以一般情况下效率会低一些。但是,从可靠性方面考虑,由于消息机制是通过系统总线来完成,且可能有多个接收者,所以比方法调用更有优势。
单选题
JavaEE是Java领域内企业级应用开发的框架与标准。下面关于采用JavaEE架构的描述,不正确的是______。
- A.JavaEE定义了分布式环境中多层应用系统的架构,是多种Java技术的混合体
- B.具有典型的3层结构:表现层、业务逻辑层和基础设施层
- C.不同的应用系统对底层支持系统的要求可能不同,因此每次开发时应该针对不同的应用需求对底层系统进行二次开发,提供支持接口
- D.要严格区分业务逻辑层和表现层,尤其应该注意不要在表现层中混杂业务代码
【正确答案】
C
【答案解析】[解析] JavaEE以前称为J2EE,可以帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。JavaEE是在JavaSE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(SOA)和Web 2.0应用程序。JavaEE定义了分布式环境中多层应用系统的架构,是多种Java技术的混合体,具有典型的3层结构:表现层、业务逻辑层和基础设施层。在实际应用中,基础设施层应该要保持稳定,要严格区分业务逻辑层和表现层,尤其应该注意不要在表现层中混杂业务代码。