【软件工程基础复习整理】第五章概要设计(4) 类设计原则

2023-11-12

单一职责原则

当需求变化时,类的职责就会因此变化
单一职责原则要求的是一个类应该仅有一个引起它变化的原因
如果一个类承担的职责过多,会导致设计脆弱,也即当设计因一个职责的变化二发生改变时会遭到意想不到的破坏,影响这个累执行其他职责的能力

开闭原则

一个软件设计对扩展是开放的,对修改是封闭的

里氏替换原则

里氏替换原则要求子类型必须能够替换掉其基类型
里氏替换原则是采用继承来完成复用的基础
只有在派生类替换掉其基类后,软件的功能不受影响时,基类才真正被复用

依赖倒置原则

高层不依赖于低层,抽象不依赖于细节,好像就是web中所讲的控制反转(留待后查)

接口隔离原则

所谓接口就是一些方法签名的集合,一个方法的签名包括方法的名称和参数列表
接口隔离原则讲的是:使用多个专门的接口比使用单一的总结口要优越

组装复用原则

在面向对象设计中,两种实现复用已有设计和实现的方法:继承和复用
请添加图片描述
继承会增加类之间的耦合,会带来维护和理解方面的问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【软件工程基础复习整理】第五章概要设计(4) 类设计原则 的相关文章

  • IT中文技术站十大网站收藏

    1 CSDN www csdn net CSDN Chinese Software Developer Network 创立于1999年 是中国的IT社区和服务平台 为中国的软件开发者和IT从业者提供知识传播 职业发展 软件开发等全生命周期
  • 六种线程状态详解

    1 线程状态概述 线程从创建到运行到结束是一个线程的生命周期 当线程被创建到结束过程中 不是一直处于运行状态的 下面来介绍一下线程从运行到结束所有的状态 线程状态 导致状态发生条件 NEW 新建 线程刚被创建 没有启动 也就是还没调用sta

随机推荐

  • LeetCode 841.钥匙和房间 - C++ - 小结

    钥匙和房间 有 N 个房间 开始时你位于 0 号房间 每个房间有不同的号码 0 1 2 N 1 并且房间里可能有一些钥匙能使你进入下一个房间 在形式上 对于每个房间 i 都有一个钥匙列表 rooms i 每个钥匙 rooms i j 由 0
  • python制作模型排放清单_四川省人为源大气污染物排放清单及特征

    大气污染源排放清单是污染源在一定时间跨度和空间区域内排放到大气中的各种污染物的数量列表 在支持空气质量管理决策的技术体系中 构建准确 完整和更新及时的大气污染物排放清单是识别污染来源的基础环节 也是制订污染控制策略的根本依据 同时也对大气污
  • 【论文笔记】Interventional Few-Shot Learning

    概述 目前流行的meta learning fine tuning等小样本学习方法都利用外部知识进行预训练 以使模型在小样本上有好的效果 而预训练知识很可能会成为影响样本特征与标签之间的关系的混杂因素 使模型得到错误的结果 本文从因果的角度
  • error while loading shared libraries: libssl.so.6

    执行 scripts mysql install db user mysql 安装mysql的时候报错 bin my print defaults error while loading shared libraries libssl so
  • synchronized、volatile底层原理详解

    文章目录 一 synchronized 1 监视器Monitor monitor结构及原理 监视器Monitor有两种同步方式 互斥与协作 2 Mutex lock mutex的工作方式 3 java对象头 java对象布局 4 无锁 偏向
  • PCL 安装

    1 安装pcl 1 1下载文件 地址链接 Release PCL 1 11 1 PointCloudLibrary pcl GitHub 下载的文件 PCL 1 11 1 AllInOne msvc2019 win64 exe pcl 1
  • 使用groupingcomparator求同一订单中最大金额的订单

    有如下订单数据 现在需要求出每一个订单中成交金额最大的一笔交易 订单id 商品id 成交金额 Order 0000001 Pdt 01 222 8 Order 0000001 Pdt 05 25 8 Order 0000002 Pdt 03
  • Linux内存精确统计工具

    1 ps mem介绍 ps mem是一个可以帮助我们精确获取 Linux 中各个程序核心内存使用情况的简单python脚本 它会分别计算一个程序私有内存总量和共享内存总量 并以更准确的方式给出了总的内存使用量 2 安装方式 包管理器 pip
  • qq 浏览器不支持java_各种浏览器开启JavaScript脚本方法

    随着网站设计技术的发展 为了用户友好体验 大部分网站使用了JavaScript脚本设计 如果您的浏览器禁用或关闭的JavaScript支持 那么可能造成网站体验差或网站部分功能无法使用 下面提供10种浏览器如何开启JavaScript的方法
  • 电商平台项目------首页

    目录 Mock swiper seiper的基本使用 swiper在vue中的问题 组件通讯的方式 props 父给子通讯 自定义事件 子给父通讯 父组件通过ref获取子组件数据 全局事件总线 bus 全能 作用域插槽 vuex paren
  • Perl中变量值交换

    示例 a 1 b 2 print a a b b a print a
  • empty ajax,php - Javascript Array empty not empty (Ajax) - Stack Overflow

    I m trying to retrieve the address that API google send me into an array The problem is that I just received an array em
  • Android12 HttpCanary系统证书安装 Magisk模块movecert

    手机 pixel 6 系统 Android 12 HttpCanary高级版 想要无限制使用高级功能的可以参照我的这篇文章实战 逆向最新黄鸟抓包软件 HttpCanary证书的安装 之前我一直使用的Android 8 证书可以直接通过Htt
  • Golang-如何判断一个 interface{} 的值是否为 nil ?

    引用 起初我会下意识的回答 直接 v nil 进行判断不就好了吗 然后翻阅了很多资料终于大致搞定里面的道道 例子 请看下面这段代码 可以先猜测一下输出的结果 package main import fmt func main var a s
  • python复数类型-Python 复数属性和方法操作实例

    复数是由一个实数和一个虚数组合构成 表示为 x yj 一个复数时一对有序浮点数 x y 其中 x 是实数部分 y 是虚数部分 Python 语言中有关复数的概念 1 虚数不能单独存在 它们总是和一个值为 0 0 的实数部分一起构成一个复数
  • datax->hdfsreader->orc文件读取出错ArrayIndexOutOfBoundsException: 6

    Exception in thread main java lang ArrayIndexOutOfBoundsException 6 at org apache orc OrcFile WriterVersion from OrcFile
  • bash: pip3: command not found

    问题描述 当使用命令pip3 install XXX 出现错误 bash pip3 command not found 错误原因 pip3还没有安装 解决方法 安装 pip3 sudo apt install python3 pip
  • 单片机设计_实时时钟电路(AT89C51、LCD1602、DS1302)

    单片机实时时钟电路 LCD1602 DS1302 想要更多项目私wo 一 简介 此电路主要有51单片机 LCD1602模块 DS1302芯片组成 通过LCD1062显示当前时间 二 运行效果 三 源文件 main c 想要更多项目私wo i
  • 3DMax渲染常见问题

    span style color rgb 153 0 0 font family none font size 24px background color rgb 255 255 255 前言 span 最近在学习3DMax渲染 刚好看网上
  • 【软件工程基础复习整理】第五章概要设计(4) 类设计原则

    单一职责原则 当需求变化时 类的职责就会因此变化 单一职责原则要求的是一个类应该仅有一个引起它变化的原因 如果一个类承担的职责过多 会导致设计脆弱 也即当设计因一个职责的变化二发生改变时会遭到意想不到的破坏 影响这个累执行其他职责的能力 开