【设计模式_单线选择】面向对象设计原则--单选题

2023-10-30 15:04

本文主要是介绍【设计模式_单线选择】面向对象设计原则--单选题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 单选题(共20题,100分)

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

A. 程序设计语言,建模语言

B. 建模语言,程序设计语言

C. 实现,抽象

D.
抽象,实现

我的答案: D:抽象,实现;正确答案: D:抽象,实现;

这篇关于【设计模式_单线选择】面向对象设计原则--单选题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/308734

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

如何选择适合孤独症兄妹的学校?

在探索适合孤独症儿童教育的道路上,每一位家长都面临着前所未有的挑战与抉择。当这份责任落在拥有孤独症兄妹的家庭肩上时,选择一所能够同时满足两个孩子特殊需求的学校,更显得尤为关键。本文将探讨如何为这样的家庭做出明智的选择,并介绍星贝育园自闭症儿童寄宿制学校作为一个值得考虑的选项。 理解孤独症儿童的独特性 孤独症,这一复杂的神经发育障碍,影响着儿童的社交互动、沟通能力以及行为模式。对于拥有孤独症兄

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

如何选择SDR无线图传方案

在开源软件定义无线电(SDR)领域,有几个项目提供了无线图传的解决方案。以下是一些开源SDR无线图传方案: 1. **OpenHD**:这是一个远程高清数字图像传输的开源解决方案,它使用SDR技术来实现高清视频的无线传输。OpenHD项目提供了一个完整的工具链,包括发射器和接收器的硬件设计以及相应的软件。 2. **USRP(Universal Software Radio Periphera

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In