本答案对应课程为:点我自动跳转查看
本课程起止时间为:2021-09-07到2022-01-30
本篇答案更新状态:每5天更新一次

第一章 设计模式概述 第一单元测试

小提示:本节包含奇怪的同名章节内容

1、 问题:关于单一职责原则,以下叙述错误的是
选项:
A:一个类只负责一个功能领域中的相应职责
B:就一个类而言,应该有且仅有一个引起它变化的原因
C:一个类承担的职责越多,越容易复用,被复用的可能性越大
D:一个类承担的职责过多时需要将职责进行分离,将不同的职责封装在不同的类中
答案: 【一个类承担的职责越多,越容易复用,被复用的可能性越大

分析:【一个类只负责一个功能领域中的相应职责;一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性就越小】

2、 问题:实现开闭原则的关键在于
选项:
A:分离类的职责
B:对系统进行抽象化
C:一个类尽可能少的与其他类发生相互作用
D:多用关联关系,少用继承关系
答案: 【对系统进行抽象化
分析:【实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现】

3、 问题:某系统通过使用配置文件,可以在不修改源代码的情况下更换数据库驱动程序,该系统满足
选项:
A:里氏代换原则
B:接口隔离原则
C:单一职责原则
D:开闭原则
答案: 【开闭原则
分析:【里氏代换原则:子类对象可以替换父类对象;
接口隔离原则:使用多个专门的接口,而不使用单一的总接口;
单一职责原则:一个功能(职责)只由一个类负责;
开闭原则:在不修改原有代码的情况下进行扩展;
题目中提到“在不修改源代码的情况下”,由此可知该系统满足开闭原则。】

4、 问题:已知ClassA是ClassB的父类,在ClassC中定义了ClassA类型的对象obj,且提供了方法setClassA(ClassA obj)用于给obj对象赋值,以下叙述有误的是
选项:
A:可以在setClassA()方法中传递一个ClassB类型的对象
B:如果在类ClassA中定义了方法method1(),在类ClassB中覆盖了该方法,当setClassA()方法参数传递的是ClassB类型的对象时,在ClassC中调用obj的method1()方法时将执行ClassB的method1()方法
C:可以在ClassC中定义一个新的方法setClassA(ClassB obj),它与原有方法setClassA(ClassA obj)构成一组重载方法
D:如果在ClassB中定义了ClassA没有的新方法method2(),当setClassA()方法参数传递的是ClassB类型的对象时,在ClassC中可以调用obj对象的method2()方法
答案: 【如果在ClassB中定义了ClassA没有的新方法method2(),当setClassA()方法参数传递的是ClassB类型的对象时,在ClassC中可以调用obj对象的method2()方法
分析:【父类对象不可以访问子类方法。而上转型对象,既可以访问父类方法(通过 super. 来调用),也可以访问子类继承或隐藏的成员变量,或者调用子类继承的方法(父类方法)或者子类重写的实例方法】

5、 问题:下面关于面向对象设计的描述正确的是
选项:
A:针对接口编程,而不是针对实现编程
B:针对实现编程,而不是针对接口编程
C:接口与实现不可分割
D:优先使用继承而非组合
答案: 【针对接口编程,而不是针对实现编程
分析:【“针对接口编程,而不是针对实现编程”这是面向对象程序设计的一条重要准则,遵循此原则有以下好处:
①使用者不必知道其使用对象的具体所属类;
②使用者无需知道特定类,只需知道它们所期望的接口;
③一个对象可以很容易地被(实现了相同接口的)另一个对象所替换;
④对象间的连接不必硬绑定到一个具体类的对象上,因此增加了灵活性。】

6、 问题:关于继承复用和合成复用,以下叙述错误的是( )。
选项:
A:继承复用实现简单,子类可以继承父类的部分方法和属性,并且可以选择性覆盖父类的方法
B:继承复用会破坏系统的封装性,会将基类的实现细节暴露给子类
C:合成复用将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以 调用已有对象的方法,从而实现行为的复用
D:合成复用又称为“白箱”复用,与继承复用相比,其耦合度更低,成员对象的变化对容器对象影响较小,而且合成复用能在程序运行时动态实现
答案: 【合成复用又称为“白箱”复用,与继承复用相比,其耦合度更低,成员对象的变化对容器对象影响较小,而且合成复用能在程序运行时动态实现
分析:【合成复用原则的实现方法:合成复用原则是通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。优点:可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少。继承复用:优点:简单和易实现;缺点:限制了系统的灵活性,使类与类之间的耦合度增加,父类的变化可能会影响到所有的子类。】

7、 问题:( )是一种很强的拥有关系。部分和整体的生命周期通常一样,整体对象完全支配,其组成部分包括他们的创建和销毁等( )同样表示拥有关系,但有时候不分对象给在不同团体之间共享,而且不分对象的生命周期也可以于整体对象不同,甚至部分对象可以脱离整体对象而单独存在。上述两种关系都是( )关系的特殊种类
选项:
A:聚合
B:组合
C:继承
D:关联
答案: 【聚合;
组合;
关联

分析:【关联有两种,一个是组合,一个是聚合,
组合是强关联,关联的部分严格依赖整体】

8、 问题:以下关于面向对象设计的叙述中,错误的是
选项:
A:高层模块不应该依赖于底层模块
B:抽象不应该依赖于细节
C:细节可以依赖于抽象
D:高层模块无法不依赖于底层模块
答案: 【高层模块无法不依赖于底层模块
分析:【在面向对象的设计中,存在依赖倒置原则:高层模块不应该依赖低层模块。
两个都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象。】

9、 问题:如果一个方法能够接受一个基类对象作为其参数,必然可以接受一个子类对象。该陈述是( )的定义。
选项:
A:依赖倒转原则
B:里氏代换原则
C:合成复用原则
D:接口隔离原则
答案: 【里氏代换原则
分析:【书本内容】

10、 问题:在某MIS系统设计中,提供了一个专门用于连接数据库的类DBConnection,该类包含了用
于连接数据库的方法,系统提供DAO(数据访问对象)类负责对数据库进行增删改查等操
作,在操作数据库之前需要先连接数据库,因此需要重用DBConnection中的连接方法。
为了确保操作系统具有良好的可扩展性和可维护性,类DBCnnection和DAO之间的关系
以()最为合适。
选项:
A:关联关系
B:依赖关系
C:继承关系
D:实现关系
答案: 【关联关系

11、 问题:关于接口隔离原则,以下叙述有误的是( )。
选项:
A:在系统设计时,客户端不应该依赖那些它不需要的接口
B:当一个接口太大时,需要将它分割成一些更细小的接口,使用该接口的客户端类仅需知道与之相关的方法即可
C:接口应该尽量细化,同时接口中的方法应该尽可能少,理想情况是在每个接口中只定义一个方法,该接口使用起来最为方便
D:一个接口只代表一个角色,每个角色都有它特定的一个接口
答案: 【接口应该尽量细化,同时接口中的方法应该尽可能少,理想情况是在每个接口中只定义一个方法,该接口使用起来最为方便

12、 问题:在系统设计中应用迪米特法则,以下叙述有误的是
选项:
A:在类的划分上,应该尽量创建松耦合的,类的耦合度越低,复用越容易
B:如果两个类之间不必彼此直接通信,那么这两个类就不应该发生直接的相互作用
C:在对其他类的引用上,一个对象对其他对象的
引用应当降到最低
D:在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口,且成员变量和成员函数的访问权限最好设置为公开的(public)
答案: 【在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口,且成员变量和成员函数的访问权限最好设置为公开的(public)
分析:【在类的结构设计上,每一个类都应
当尽量降低其成员变量和成员函数
的访问权限,所以D错误】

13、 问题:一个软件实体应当尽可能少的与其他软件实体发生相互作用,这样,当一个模块修改时,就会尽量少的影响其他模块,扩展会相对容易。这是( )的定义。
选项:
A:迪米特法则
B:接口隔离原则
C:里氏代换原则
D:合成复用原则
答案: 【迪米特法则
分析:【迪米特法则:一个对象应当对其他对象有尽可能少的了解,其中迪米特原则的主要理念是让一个对象尽可能少地了解其他对象,这样,就能尽可能少地产生违规操作,让设计出来的系统更稳定。】

14、 问题:UML中关联的多重度是指()。
选项:
A:一个类有多少个方法被另一个类调用
B:一个类的实例能够与另一个类的多少个实例相关联
C:一个类的某个方法被另一个类调用的次数
D:两个类所具有的相同的方法和属性
答案: 【一个类的实例能够与另一个类的多少个实例相关联
分析:【多重性关联表示两个关联对象在数量上的对应关系】

15、 问题:在UML类图中,()关系表明类之间的相互联系最强
选项:
A:聚合
B:组合
C:继承
D:关联
答案: 【继承

第二章面向对象设计原则 第二章测验

1、 问题:关于继承复用和合成复用,以下叙述错误的是( )。
选项:
A:继承复用实现简单,子类可以继承父类的部分方法和属性,并且可以选择性覆盖父类的方法
B:继承复用会破坏系统的封装性,会将基类的实现细节暴露给子类
C:合成复用将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以 调用已有对象的方法,从而实现行为的复用
D:合成复用又称为“白箱”复用,与继承复用相比,其耦合度更低,成员对象的变化对容器对象影响较小,而且合成复用能在程序运行时动态实现
答案: 【合成复用又称为“白箱”复用,与继承复用相比,其耦合度更低,成员对象的变化对容器对象影响较小,而且合成复用能在程序运行时动态实现
分析:【合成复用原则的实现方法:合成复用原则是通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。优点:可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少。继承复用:优点:简单和易实现;缺点:限制了系统的灵活性,使类与类之间的耦合度增加,父类的变化可能会影响到所有的子类。】

2、 问题:如果一个方法能够接受一个基类对象作为其参数,必然可以接受一个子类对象。该陈述是( )的定义。
选项:
A:依赖倒转原则
B:里氏代换原则
C:合成复用原则
D:接口隔离原则
答案: 【里氏代换原则
分析:【书本内容】

3、 问题:在某MIS系统设计中,提供了一个专门用于连接数据库的类DBConnection,该类包含了用
于连接数据库的方法,系统提供DAO(数据访问对象)类负责对数据库进行增删改查等操
作,在操作数据库之前需要先连接数据库,因此需要重用DBConnection中的连接方法。
为了确保操作系统具有良好的可扩展性和可维护性,类DBCnnection和DAO之间的关系
以()最为合适。
选项:
A:关联关系
B:依赖关系
C:继承关系
D:实现关系

本课程剩余章节答案为付费内容
支付后可永久查看
如有任何疑问请及时加入Q群售后群665210305反馈
需要期末答案的同学可加入Q群665210305购买

   

发表评论

电子邮件地址不会被公开。 必填项已用*标注