本文主要是介绍【设计模式_单线选择】面向对象设计原则--单选题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一. 单选题(共20题,100分)
- (单选题, 5分)关于单一职责原则,以下叙述错误的是( )。
A. 一个类只负责一个功能领域中的相应职责
B. 就一个类而言,应该有且仅有一个引起它变化的原因
C. 一个类承担的职责越多,越容易复用,被复用的可能性越大
D. 一个类承担的职责过多时,需要将职责进行分离,将不同的职责封装在不同的类中
我的答案: C:一个类承担的职责越多,越容易复用,被复用的可能性越大;正确答案: C:一个类承担的职责越多,越容易复用,被复用的可能性越大;
5分
答案解析:单一职责特点 - (单选题, 5分)实现开闭原则的关键在于( )。
A. 分离类的职责
B. 对系统进行抽象化
C. 一个类尽可能地与其他类发生相互作用
D. 多用关联关系,少用继承关系
我的答案: B:对系统进行抽象化;正确答案: B:对系统进行抽象化;
5分
答案解析:开闭原则的特点 - (单选题, 5分)某系统通过使用配置文件,可以在不修改源代码的情况下更换数据库驱动程序,该系统满足( )。
A. 里氏代换原则
B. 接口隔离原则
C. 单一职责原则
D. 开闭原则
我的答案: D:开闭原则;正确答案: D:开闭原则;
5分
答案解析:开闭原则的应用场景 - (单选题, 5分)已知ClassA是ClassB的父类,在ClassC中定义了ClassA类型的对象obj,且提供了方法setClassA(ClassA obj)用于给obj对象赋值,以下叙述有误的是( )。
A. 可以在setClassA中传递一个ClassB类型的对象
B. 如果在setClassA中定义了方法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()方法
我的答案: D:如果在ClassB中定义了ClassA没有的新方法method2(),当setClassA()方法参数传递的是ClassB类型的对象时,在ClassC中可以调用obj对象的的method2()方法;正确答案: D:如果在ClassB中定义了ClassA没有的新方法method2(),当setClassA()方法参数传递的是ClassB类型的对象时,在ClassC中可以调用obj对象的的method2()方法;
5分
答案解析:面向对象编程继承、重载、覆盖、重写、参数传递、方法调用 - (单选题, 5分)下面关于面向对象设计的描述正确的是( )。
A. 针对接口编程,而不是针对实现编程
B. 针对实现编程,而不是针对接口编程
C. 接口与实现不可分割
D. 优先使用继承而非组合
我的答案: A:针对接口编程,而不是针对实现编程;正确答案: A:针对接口编程,而不是针对实现编程;
5分
答案解析:面向对象设计原则的核心思想 - (单选题, 5分)面向对象分析与设计中的( )是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的。
A. 开闭原则
B. 里氏代换原则
C. 依赖倒转原则
D. 单一职责原则
我的答案: A:开闭原则;正确答案: A:开闭原则;
5分
答案解析:开闭原则的核心思想 - (单选题, 5分)以下关于面向对象设计的叙述中,错误的是( )。
A. 高层模块不应该依赖于底层模块
B. 抽象不应该依赖于细节
C. 细节可以依赖于抽象
D. 高层模块无法不依赖于底层模块
我的答案: D:高层模块无法不依赖于底层模块;正确答案: D:高层模块无法不依赖于底层模块;
5分
答案解析:开闭原则定义 - (单选题, 5分)开闭原则是面向对象的可复用设计的基石。开闭原则是指一个软件实体应当对( )开放。
A. 修改
B. 扩展
C. 分析
D. 设计
我的答案: B:扩展;正确答案: B:扩展;
5分
答案解析:开闭原则定义 - (单选题, 5分)关于继承复用和合成复用,以下叙述错误的是( )。
A. 继承复用实现简单,子类可以继承父类的部分方法和属性,并且可以选择性覆盖父类的方法
B. 继承复用会破坏系统的封装性,会将基类的实现细节暴露给子类
C. 合成复用将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的方法,从而实现行为的复用
D. 合成复用又称为“白箱”复用,与继承复用相比,其耦合度更高,成员对象的变化对容器对象影响较大,而且合成复用不能在程序运行时动态实现
我的答案: D:合成复用又称为“白箱”复用,与继承复用相比,其耦合度更高,成员对象的变化对容器对象影响较大,而且合成复用不能在程序运行时动态实现;正确答案: D:合成复用又称为“白箱”复用,与继承复用相比,其耦合度更高,成员对象的变化对容器对象影响较大,而且合成复用不能在程序运行时动态实现;
5分
答案解析:合成复用的特点 - (单选题, 5分)如果一个方法能够接受一个基类对象作为其参数,必然可以接受一个子类对象。该陈述是( )的定义。
A. 依赖倒转原则
B. 里氏代换原则
C. 合成复用原则
D. 接口隔离原则
我的答案: B:里氏代换原则;正确答案: B:里氏代换原则;
5分
答案解析:里氏代换原则定义 - (单选题, 5分)在某MIS系统设计中,提供了一个专门用于连接数据库的类DBConnection,该类包含了用于连接数据库的方法,系统提供了DAO(数据访问对象)类负责对数据库进行增删改查等操作,在操作数据库之前需要先连接数据库,因此需要重用DBConnection中的连接方法。为了确保系统具有良好的可扩展性和可维护性,类DBConnection和DAO之间的关系以( )最为合适。
A. 关联关系
B. 依赖关系
C. 继承关系
D. 实现关系
我的答案: A:关联关系;正确答案: A:关联关系;
5分
答案解析:UML类间关系的应用 - (单选题, 5分)关于接口隔离原则,以下叙述有误的是©。
A. 在系统设计时,客户端不应该依赖那些它不需要的接口
B. 当一个接口太大时,需要将它分割成一些更细小的接口,使用该接口的客户端类仅需知道与之相关的方法即可
C. 接口应该尽量细化,同时接口中的方法应该尽可能少,理想情况是在每个接口中只定义一个方法,该接口使用起来最为方便
D. 一个接口只代表一个角色,每个角色都有它特定的一个接口
我的答案: C:接口应该尽量细化,同时接口中的方法应该尽可能少,理想情况是在每个接口中只定义一个方法,该接口使用起来最为方便;正确答案: C:接口应该尽量细化,同时接口中的方法应该尽可能少,理想情况是在每个接口中只定义一个方法,该接口使用起来最为方便;
5分
答案解析:接口隔离原则的目的 - (单选题, 5分)在系统设计中应用迪米特法则,以下叙述有误的是( )。
A. 在类的划分上,应该尽量创建松耦合的类,类的耦合度越低,复用越容易
B. 如果两个类之间不必彼此直接通信,那么这两个类就不应当发生直接的相互作用
C. 在对其他类的引用上,一个对象对其他对象的引用应当降到最低
D. 在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口,且成员变量和成员函数的访问权限最好设置为公开的(public)
我的答案: C:在对其他类的引用上,一个对象对其他对象的引用应当降到最低;正确答案: D:在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口,且成员变量和成员函数的访问权限最好设置为公开的(public);
0分
答案解析:迪米特法则的结构特点 - (单选题, 5分)一个软件实体应当尽可能少地与其他软件实体发生相互作用,这样,当一个模块修改时,就会尽量少地影响其他模块,扩展会相对容易。这是( )的定义。
A. 迪米特法则
B. 接口隔离原则
C. 里氏代换原则
D. 合成复用原则
我的答案: A:迪米特法则;正确答案: A:迪米特法则;
5分
答案解析:迪米特法则的定义 - (单选题, 5分)( )不是迪米特法则的重构方案实例。
A. 为了防止界面组件之间产生复杂的引用关系,提供一个中央控制器来负责控制界面组件间的相互引用
B. 由于不能直接访问一个远程对象,在本地创建一个远程对象的代理,通过代理对象来间接访问远程对象
C. 为了降低多层系统的耦合度,提高类的可扩展性和复用性,在界面表示层和业务逻辑层之间增加控制层,由控制层来转发表示层对业务逻辑的调用
D. 为了提高可扩展性,在系统中增加抽象业务逻辑层,客户类针对抽象业务逻辑层编程,而将具体业务逻辑类类名存储在配置文件中
我的答案: D:为了提高可扩展性,在系统中增加抽象业务逻辑层,客户类针对抽象业务逻辑层编程,而将具体业务逻辑类类名存储在配置文件中;正确答案: D:为了提高可扩展性,在系统中增加抽象业务逻辑层,客户类针对抽象业务逻辑层编程,而将具体业务逻辑类类名存储在配置文件中;
5分
答案解析:迪米特法则的特点 - (单选题, 5分)面向对象分析与设计中的( )是指子类应当可以替换父类并出现在父类能够出现的任何地方。
A. 开闭原则
B. 里氏代换原则
C. 依赖倒转原则
D. 单一职责原则
我的答案: B:里氏代换原则;正确答案: B:里氏代换原则;
5分
答案解析:里氏代换概念 - (单选题, 5分)开闭原则是面向对象的可复用设计的基石。开闭原则对( )关闭。
A. 修改
B. 扩展
C. 分析
D. 设计
我的答案: A:修改;正确答案: A:修改;
5分
答案解析:开闭原则概念 - (单选题, 5分)里氏代换原则是指任何( )可以出现的地方,( )一定可以出现。
A. 变量,常量
B. 常量,变量
C. 基类对象,子类对象
D. 子类对象,基类对象
我的答案: C:基类对象,子类对象;正确答案: C:基类对象,子类对象;
5分
答案解析:里氏代换概念 - (单选题, 5分)依赖倒转原则就是要依赖于( ),而不要依赖于( ),或者说要针对接口编程,不要针对实现编程。
A. 程序设计语言,建模语言
B. 建模语言,程序设计语言
C. 实现,抽象
D. 抽象,实现
我的答案: D:抽象,实现;正确答案: D:抽象,实现;
5分
答案解析:依赖倒转概念 - (单选题, 5分)
依赖倒转原则就是要依赖于( ),而不要依赖于( ),或者说要针对接口编程,不要针对实现编程。
A. 程序设计语言,建模语言
B. 建模语言,程序设计语言
C. 实现,抽象
D.
抽象,实现
我的答案: D:抽象,实现;正确答案: D:抽象,实现;
这篇关于【设计模式_单线选择】面向对象设计原则--单选题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!