软件工程2018考试试卷

  • 格式:doc
  • 大小:422.00 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题(每题 2 分,共 20 分)

1.若类A 中包含了类B 的实例,且当类A 的实例消失时,类B 的实例仍然存在并能够继续工作,

那么类A 和类B 之间存在( C )关系。

A. 继承

B. 依赖

C. 聚合

D. 组合

2.在面向对象软件开发过程中,采用设计模式( C )。

A. 可以减少在设计和实现过程中需要创建的实例对象的数量

B. 可以保证程序的运行速度达到最优值

C. 可以复用相似问题的相同解决方案

D. 允许在非面向对象程序设计语言中使用面向对象的概念

3.对Alexander的模式哲学,以下叙述正确的是( B )。

A 学习设计模式,可以完全解决软件开发中的变化情况.

B. 每个模式,可以无数次使用模式提供的解决方案,而不必再次重复同样的工作方式.

C. 设计模式总是可以为需求的变化提供更好的解决方案.

D. 设计模式描述一个在开发的软件环境中不断产生新的问题时,能提供很好的解决方案.

4.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( A )模式。

A.创建型 B.结构型C.行为型D.以上都可以

5.( B )不是实现单例模式的要点。

A. 构造函数为私有

B. 单例类不能被继承

C. 由单例类自行创建单个实例

D. 必须自行向整个系统提供唯一实例

6.设计模式的两大主题是( D )

A.系统的维护与开发 B.对象组合与类的继承

C.系统架构与系统开发 D.系统复用与系统扩展

6.关于继承表述错误的是( D )

A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。

B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。

C.破坏了封装性,因为这会将父类的实现细节暴露给子类。

D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。

7.代理模式包括( D )角色。

A.接收者、命令接口、具体命令、请求者B.环境、抽象状态、具体状态

C.抽象组件、具体组件、装饰、具体装饰D.抽象主题、实际主题、代理

8.以下关于命令模式的叙述错误的是( D )。

A. 命令模式将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行

参数化

B. 命令模式实现请求发送者和请求接收者解耦

C. 使用命令模式会导致某些系统有过多的具体命令类

D. 命令模式是对命令的封装,命令模式把发出命令的责任和执行命令的责任集中

在同一个类中

9.某系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),

分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,为了减少类的个数可使用以下哪种设计模式?

( C )

A. 工厂模式

B. 组合模式

C. 装饰模式

D. 策略模式

10.某系统中用户可自行动态选择某种排序算法之一(如选择排序、冒泡排序、插入排序)来实现

某功能,该系统的设计可以使用以下哪种设计模式?( D )

A. 状态模式

B. 策略模式

C. 模板方法模式

D. 工厂方法模式

二、判断题(每题 2 分,共10分

1.一个类承担的职责越多,越容易复用,被复用的可能性越大。( X )

2.工厂方法模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态,工厂方法模式退化后

可以演变成简单工厂模式。( X )

3.工厂方法模式对应唯一一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构。

( √ )

4.命令模式将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化。( √ )

5.W indows操作系统中的应用程序桌面快捷方式体现了代理模式。( √ )

6.一个软件实体应当尽可能少的与其他软件实体发生相互作用,这样,当一个模块修改时,就会尽

量少的影响其他模块,扩展会相对容易。( √ )

7.电视机遥控器的设计中蕴含了命令模式的思想。( √ )

8.一个软件实体应当尽可能少的与其它软件实体发生相互作用,这样,当一个模块修改时,就会尽

量少的影响其他模块,扩展会相对容易。( √ )

9.适配器模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。( √ )

10.Java中支持克隆的类必须实现Cloneable接口,clone()方法对于任何对象x,都有

x.clone()==x,并且x.clone().getClass==x.clone().getClass()。( X )

二、填空题(每题 2 分,共 16 分)

1.在面向对象设计原则中,_ __原则是指子类应该可以替换父类并出现在父类能够出现的任何地

方。

2.最基本的UML图是。它不仅描述了类,而且说明了类之间的关系。

3.模式可以根据参数的不同返回不同类的实例。

4.模式中,父类负责定义创建对象的公共接口,子类则负责生成具体的对象。

5.模式将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组

合对象的使用具有一致性。

6.我(Me)和妹妹(Sister)跟妈妈(Mother)说:“妈妈,我和妹妹在院子里玩。饭做好了叫我们一

声。”该场景蕴含了模式。

7.模式使原本接口不兼容而不能一起工作的类可以一起工作。

8.在对象适配器模式中适配器类与适配者类是关系。

三、程序填写题(每空 2.5 分,共10 分)

某软件公司承接了某信息咨询公司的收费商务信息查询系统的开发任务,该系统的基本需求如下:

(1)在进行商务信息查询之前用户需要通过身份验证,只有合法用户才能够使用该查询系统;(2) 在进行商务信息查询时系统需要记录查询日志,以便根据查询次数收取查询费用。

该软件公司开发人员已完成了商务信息查询模块的开发任务,现希望能够以一种松耦合的方式向原有系统增加身份验证和日志记录功能,客户端代码可以无区别地对待原始的商务信息查询模块和增加新功能之后的商务信息查询模块,而且可能在将来还要在该信息查询模块中增加一些新的功能。现使用代理模式设计并实现该收费商务信息查询系统。

interface Searcher {

(1)

}

class RealSearcher implements Searcher {

public String doSearch(String userId, String keyword) {

System.out.println("用户'" + userId + "'使用关键词'" + keyword + "'查询商务信息!");