第一章 设计模式概述

第一单元测试

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()方法

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、单选题:
已知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()方法

11、单选题:
下面关于面向对象设计的描述正确的是
选项:
A: 针对接口编程,而不是针对实现编程
B: 针对实现编程,而不是针对接口编程
C: 接口与实现不可分割
D: 优先使用继承而非组合
答案: 【 针对接口编程,而不是针对实现编程

12、单选题:
以下关于面向对象设计的叙述中,错误的是
选项:
A: 高层模块不应该依赖于底层模块
B: 抽象不应该依赖于细节
C: 细节可以依赖于抽象
D: 高层模块无法不依赖于底层模块
答案: 【 高层模块无法不依赖于底层模块

13、单选题:
关于继承复用和合成复用,以下叙述错误的是( )。
选项:
A: 继承复用实现简单,子类可以继承父类的部分方法和属性,并且可以选择性覆盖父类的方法
B: 继承复用会破坏系统的封装性,会将基类的实现细节暴露给子类
C: 合成复用将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以 调用已有对象的方法,从而实现行为的复用
D: 合成复用又称为“白箱”复用,与继承复用相比,其耦合度更低,成员对象的变化对容器对象影响较小,而且合成复用能在程序运行时动态实现
答案: 【 合成复用又称为“白箱”复用,与继承复用相比,其耦合度更低,成员对象的变化对容器对象影响较小,而且合成复用能在程序运行时动态实现

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

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

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

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

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

19、单选题:
某系统通过使用配置文件,可以在不修改源代码的情况下更换数据库驱动程序,该系统满足
选项:
A: 里氏代换原则
B: 接口隔离原则
C: 单一职责原则
D: 开闭原则
答案: 【 开闭原则

20、单选题:
已知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()方法

21、单选题:
下面关于面向对象设计的描述正确的是
选项:
A: 针对接口编程,而不是针对实现编程
B: 针对实现编程,而不是针对接口编程
C: 接口与实现不可分割
D: 优先使用继承而非组合
答案: 【 针对接口编程,而不是针对实现编程

22、单选题:
以下关于面向对象设计的叙述中,错误的是
选项:
A: 高层模块不应该依赖于底层模块
B: 抽象不应该依赖于细节
C: 细节可以依赖于抽象
D: 高层模块无法不依赖于底层模块
答案: 【 高层模块无法不依赖于底层模块

23、单选题:
关于继承复用和合成复用,以下叙述错误的是( )。
选项:
A: 继承复用实现简单,子类可以继承父类的部分方法和属性,并且可以选择性覆盖父类的方法
B: 继承复用会破坏系统的封装性,会将基类的实现细节暴露给子类
C: 合成复用将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以 调用已有对象的方法,从而实现行为的复用
D: 合成复用又称为“白箱”复用,与继承复用相比,其耦合度更低,成员对象的变化对容器对象影响较小,而且合成复用能在程序运行时动态实现
答案: 【 合成复用又称为“白箱”复用,与继承复用相比,其耦合度更低,成员对象的变化对容器对象影响较小,而且合成复用能在程序运行时动态实现

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

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

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

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

28、单选题:
一个软件实体应当尽可能少的与其他软件实体发生相互作用,这样,当一个模块修改时,就会尽量少的影响其他模块,扩展会相对容易。这是( )的定义。
选项:
A: 迪米特法则
B: 接口隔离原则
C: 里氏代换原则
D: 合成复用原则
答案: 【 迪米特法则

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

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

31、单选题:
某系统通过使用配置文件,可以在不修改源代码的情况下更换数据库驱动程序,该系统满足
选项:
A: 里氏代换原则
B: 接口隔离原则
C: 单一职责原则
D: 开闭原则
答案: 【

剩余75%内容付费后可查看

发表评论

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