进行面向对象设计时,就一个类而言,应该仅有一个引起它变化 的原因,这属于()设计原则。

A、单一职责
B、开放-封闭
C、接口分离
D、里氏替换


解析:

本题考点为面向对象设计的七大原则。

  1. 开闭原则
    软件实体(模块,类,方法等)应该对扩展开放,对修改关闭

  2. 里氏替换原则(LSP)
    所有引用基类的地方必须能透明地使用其派生类的对象。
    说人话就是:子类可以继承父类,但不能改变父类的功能, 里式替换是对继承的约束。

  3. 迪米特原则(最少知道原则)(LOD)
    只与你直接的朋友们通信,不要跟“陌生人”说话。
    翻译过来就是:避免间接调用

  4. 单一职责原则
    一个类/接口/方法有且仅有一个职责。也就是说,只有该职责能够引起这个类/接口/方法的变化。

  5. 接口分隔原则(ISP)
    不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。

  6. 依赖倒置原则(DIP)

    1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
    2. 抽象不应该依赖于细节,细节应该依赖于抽象
    3. 针对接口编程,不要针对实现编程。
  7. 组合/聚合复用原则(CARP)
    尽量使用组合/聚合,不要使用类继承。

综上,答案选A。


最近在进行软考系列精选真题解析, 欢迎点赞、关注、阅读~

进行面向对象设计时,就一个类而言,应该仅有一个引起它变化 的原因,这属于()设计原则。【最全!最详细解析!】相关推荐

  1. C++:利用静态成员的方法实现对班费的管理。要求定义一个类Student,除了声明一个存放班费的静态成员,还要求分别定义一个上交班费的成员函数Contribute()、花费班费的成员函数Spend(

    C++:利用静态成员的方法实现对班费的管理.要求定义一个类Student,除了声明一个存放班费的静态成员,还要求分别定义一个上交班费的成员函数Contribute().花费班费的成员函数Spend() ...

  2. 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...

  3. php类的实例化和调用,PHP:如何使用另一个类中的参数实例化一个类

    我处于某种情况,我需要使用另一个类的实例中的参数实例化一个类. 这是原型: //test.php class test { function __construct($a, $b, $c) { ech ...

  4. python写一个类_python3学习笔记--002--写一个类

    代码: [laolang@localhost classtest]$ cat test.py #!/usr/bin/env python class person: def __init__(self ...

  5. python传递类的实例_使用Python将变量从一个类实例传递到另一个类实例?

    我在将一个类实例中定义的变量传递到另一个类实例时遇到问题.我对使用类比较陌生,但据我所知,变量可以通过简单地定义为类实例的一部分(例如在下面的示例中)从一个实例传递到另一个实例.虽然我以前使用过这个模 ...

  6. 一个类的属性调用另一个类的实例

    先定义一个类,然后初始化它的属性.比如士兵发射子弹,先定义一个士兵类,然后初始化两个属性,士兵的姓名和士兵手中的枪. 由于一开始不知道士兵会使用什么枪作战,所以士兵使用的枪初始化属性可以先被定义为No ...

  7. 一个类的实例是另一个类的属性python_Python中的类属性和实例属性引发的一个坑...

    问题 今天在项目中遇到了个奇怪的问题,实例的一个时间属性并没有根据时间变化而变化,分析之后恍然大悟,总结下分享给大家.大家先看一段代码: import datetime import time cla ...

  8. C# winform中一个类中如何调用另一个窗体的控件或方法

    转载地址:http://blog.csdn.net/ichenqingyun/article/details/52622340 一种是创建窗体对象的方式,通过对象调用控件或方法 例如: Form1 f ...

  9. 用java建一个类_利用JAVA创建一个类。

    慕姐829404 123456789101112131415package com.test;public class TestTrapezia   {    public static void m ...

  10. 设计一个矩形类rectangle_万字长文带你捋清六种设计模式的设计原则(建议收藏)...

    对于设计模式,自己很早之前就看了好多本设计模式书籍,其中一些还看了好几遍,也一直希望自己能在编码的时候把这些设计模式用上去.可是,在日常的打码中,用的最多的就是单例,其次是观察者和建造者模式 ( bu ...

最新文章

  1. Windows与Linux区别3
  2. 【Network Security!】入侵痕迹清除,修改系统日志
  3. Microsoft Visual SourceSafe 使用指南
  4. 电脑记事本_带日历的电脑桌面记事本?
  5. AJAX自学笔记01
  6. sed教程入门与实例练习(一)
  7. 记录搭建Odoo框架
  8. RIA之家精华教程和资源集合
  9. python mysql异常处理_python-处理PyMySql异常-最佳做法
  10. 用PHP写Yaf:Yaf_Registry类
  11. StringUtil详解
  12. 网页html生成图片的常用方案
  13. win10企业版如何安装应用商店-默认没有应用商店
  14. c语言获取windows路径,获取Windows/System/Temp目录路径
  15. “The Gentle Lentil Restaurant“ Case Solution Report 模型与决策-温柔小扁豆餐厅例题
  16. 急!灾区的食物依然短缺!(找不到原题出处只能这样了.....)
  17. C语言程序设计学习笔记:P3-判断
  18. 外贸公司用邮件开发客户需要注意些什么?
  19. 宽带换了新的账号怎么连接服务器地址,宽带换了路由器设置步骤图解
  20. 计算机词汇店名,电脑店名字200例

热门文章

  1. 一个内核网络漏洞详解|容器逃逸
  2. 一篇漫画,看懂云计算!
  3. 音视频技术开发周刊 | 237
  4. 音视频技术开发周刊 | 221
  5. OneVPL与FFmpeg/GStreamer硬件编解码器
  6. 开源编解码器 SOLO 源码解读:带宽扩展与窄带编码
  7. LiveVideoStack线上交流分享 ( 三 ) —— 实时视频通信质量评价及寻找视频质量甜点的方法...
  8. 推荐系统 embedding 技术实践总结
  9. 腾讯发现Google Home首个无接触攻破漏洞
  10. 使用 pyenv 管理 Python 版本