github 地址, csdn懒得上传照片
学习策略
1. 快速通过视频(5 天)
王勇先生推荐视频教程。b 站链接:软件设计师考试教程
当我们快速观看视频时,我们有一个相对的底部,并建立一个基本的知识结构(尽管它可能是模糊的)。
2. 逐章看视频,逐章刷选择题(45 天)
真题 app 推荐【软考通】。豌豆荚链接:软考通
共分 16 章节。在这一步中,我们应该仔细听一章,然后完成相应章节的选择题(即上午的问题)。每一章观看视频 做题,花费大概 2~3 天。因此。
真题 app 不同于视频的章节划分,但大致可以对应。
3. 分类攻破下午题(应用技术)(15 天)
下午的应用技术问题是固定的,共 6 最后两道选一道题:
- 对数据流图进行结构测试数据流图 DFD
- 数据库的分析和设计,考查 ER 图与关系模式
- 面向对象的分析和设计是常用的 UML 图
- 常用的数据结构和算法(C 语言)
- 设计模式(C 和 Java 二选一)
在这一步中,我们可以一次复习一个与问题类型相对应的视频,然后进行大量的练习来克服它【】。例如,在阅读了与数据流图相关的视频后,我们可以打印多年的真实数据流图问题,并一次彻底理解数据流图问题。每个问题类型的成本 2~3 天,因此。
4. 熟悉 C 和 Java 的基本语法
有些学生可能没用过 C 和 Java,翁恺推荐翁恺老师的课程:
- 介绍程序设计——C语言
- C先进的语言程序设计
- 零基础学Java语言
- 面向对象程序设计——Java语言
因为下选做的是 Java,所以没有 C 推荐课程。
5. 真题与答案可能有错谬
事实上,软考试办公室从未正式公布过真实的问题和答案。真实的问题和答案在互联网上流传,是由考试朋友的记忆或其他非常规渠道获得的。问题一般没有问题,但答案真的只是参考答案。当然,经过考试朋友的讨论和整理,这些答案的准确性相对较高。因此,对于参考答案,【】。
6. 课本可作文档查阅
阅读教科书的时间成本相当高,相关知识点难以理解。因此,我们可以将教科书作为文档查阅,遇到疑问,然后查阅筛选。
7. 考试前一周刷整卷
经过以上步骤,我们已经掌握了软件设计师的知识点。你可以在考试前一周打印近五年的真实试卷,并为自己进行模拟测试。这不仅可以熟悉试卷的结构,还可以保持问题的感觉。
最后,祝大家都顺利一次过考。
知识点检查
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-TLK5twCu-1649068434786)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203272318306.png)]
[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-vyT3ShyW-1649068434786)(https://github.com/ximingx/Figurebed/blob/master/img/image-20220326213602852.png?raw=true)]
计算机组成和系统结构
数据的表示
1. 进制转换
任何制度都转化为十进制,按照权力展开
eg: 10100.01(2) => (10) {
1 * 2^4 1 * 2^2 1 * 2^(-2) } eg: 604.01(7) => (10) {
6 * 7^2 4 * 7^0 1 * 7^(-2) }
eg: 678(9) => (10) {
6 * 9^2 + 7 * 9^1 + 8 * 9^0 = 557
}
十进制转换任何进制使用短除法
eg: 64(10) => (2) {
2 64 0
2 32 0
2 16 0
2 8 0
2 4 0
2 2 0
2 1 1
} = 1000000
eg: 79(10) => (8) {
8 79 7
8 9 1
8 1 1
} = 117
eg: 678(10) => (16) {
16 678 6
16 42 A
16 2 2
} = 2A6
二进制 => 八进制 || 二进制 => 十六进制
eg: 10 001 110(2) => (8) {
2 1 6
} = 216
eg: 1000 1110(2) => (16) {
8 E
} = 8E
eg: 101 010 000(2) => (8) {
5 2 0
} = 520
八进制 => 十六进制
eg: 145(8) => (16) {
1 * 8^2 + 4 * 8^1 + 5*8^0 = 101(10)
16 101 5
16 6 6
} = 65
2. 原码反码补码移码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1WcAn9Em-1649068434787)(https://github.com/ximingx/Figurebed/blob/master/img/image-20220326225854348.png?raw=true)]
原码: 把这个数字转换为二进制, 最高位是符号位(正数为0, 负数为1), 如果分配的大小是一个字节, 那么他就是八位,不足补0 (原码的运算与正常的运算不同, 不可以用做机器操作的计算)
反码: 正数的反码与原码相同, 负数的反码等于原码除了符号位以外的值取反
补码: 正数的补码与原码相同, 负数的补码等于反码的基础上加1
移码: 只改变符号位 (一般用于浮点数运算做阶码)
表示的取值范围:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ckd2IUB-1649068434788)(https://github.com/ximingx/Figurebed/blob/master/img/image-20220326230653243.png?raw=true)]
补码的取值范围大于原码和反码, 原因是补码中 0 的正值和负值用一个数表示
3. 浮点数
浮点数的 .
之前的位数必须是一
在进行运算的时候, 要保持阶位相同
计算机结构
1. CPU结构 (运算器, 控制器)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LxQ9bq5Z-1649068434788)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203282249354.png)]
2. Flynn 分类法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-58nivs5X-1649068434788)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203282305817.png)]
3. SISC 和 RISC
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uzpimt8T-1649068434789)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203282311410.png)]
4. 流水线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zDV75FfV-1649068434789)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203282331170.png)]
eg:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qfh0MPBB-1649068434790)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203282337340.png)]
// 流水线的周期选择指令中时间最长的一段(取指,分析,执行)
> 流水线周期 2s
// 理论计算 => 启动时间 + (指令条数 - 1)* 流水线周期
> 2 + 2 + 1 + (100 - 1) * 2 = 203ns
// 实际计算 => (流水线周期步骤数量 + 指令数量 - 1) * 流水线周期
> (3 + 100 - 1) * 2 = 204ns
// 优先采用理论计算结果 (有争议)
// 流水线的吞吐率
> TP = 100 / 203ns
// 流水线的最大吞吐率
> TPMAX = 1 / 2ns
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qkbIZW1f-1649068434791)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291023863.png)]
// 流水线加速比
> s = 5 * 100 / 203
// 加速比越高越好
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n9sDD905-1649068434791)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291025786.png)]
// 在利用的时间片 / 总共夺得时间片
(t + t + t + 3t) * 4 / 15 * 4
// 衡量空间的利用率
// 在每一个步骤的时间相同时,效率最高
5. 层次化存储结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-elhyG0jG-1649068434792)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291036273.png)]
基于性价比的考虑, 引入 cache
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BvxapbXR-1649068434792)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291045624.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TnLZDQya-1649068434793)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291053003.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4abv2kAD-1649068434793)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291054568.png)]
// 空间大小 大的内存空间 - 小的内存空间 + 1
> 内存单元: C8000H - AC000H = 1C000H
> 1C000H = 1 * 16^4 + 12 * 16*3 = 65536 + 49152
> 1C000H / 2^10 = 112K
// 存储位数
112K * 16 / 28 / 16K / n = 1
n = 4
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JvYR7jc8-1649068434794)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291110725.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-baAElQsl-1649068434794)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291114794.png)]
// 最长时间
>(33 + 3) * 10 + 3 + 3 = 366
// 优化时间
> (3 + 3) * 11 = 66
6. 总线
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RjWk0MvG-1649068434794)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291125686.png)]
7. 系统可考虑分析
串联模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hv8Ykusk-1649068434795)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291129800.png)]
并联模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-udoZmADZ-1649068434795)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291131574.png)]
混合模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z3k68wHL-1649068434795)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291134121.png)]
8. 差错控制,海明校验码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KCUyASU-1649068434796)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291136504.png)]
一个码字改变几位, 才可以变为了一个合法码字,码距就是那个位数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q0PCXFnM-1649068434796)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291143905.png)]
模二除法 => 异或操作: 同0异1
二进制除法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t8oWWBmG-1649068434797)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291152439.png)]
// 原始报文: 11001010101
// 生成多项式: x^4 + x^3 + x + 1 = 11011
// 原始报文后加 (生成多项式的位数 - 1)位的0 (目的: 补余数位数)
// 进行 11001010101 0000 模二除法 11011
// 在换算出最后的结果以后 0011 将其替代 0000
// 或得完整信息11001010101 0011
// 完整信息 和 生产多项式 进行模二除法
如果余数位 0 结果正确
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sbajmjqO-1649068434797)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291356356.png)]
// 校验位: 2^n 即 1, 2, 4, 8 ……
// 满足 2^r >= x + r + 1; x为数据位, r为校验位
操作系统原理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qhIxc8h1-1649068434797)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204031049769.png)]
进程管理
1. 三态模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x3fhwE4G-1649068434798)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204031053099.png)]
// 三态模型 上提供了 静止就绪和静止阻塞
// 挂起, 并不是缺少资源, 而是暂时不处理
2.前趋图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-upE7REWC-1649068434798)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204031102659.png)]
3. 进程的同步与互斥
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JgU68C6p-1649068434798)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204031109491.png)]
4. pv 操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FTaOmLHp-1649068434799)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204040840055.png)]
// 需要注意的是
// p 操作的判断是 s < 0
// v 操作的判断是 <= 0
// 满足条件后进入进程队列,进行阻塞
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nL00Bnly-1649068434799)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204040951029.png)]
// 付款不只是顾客的单一操作
// 收费不只是收银员的单一操作
// 需要双方的配合, 有同步的关系
// 总结: 谁需要等待别人的回应, 谁进行 p 操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CXRSKYSE-1649068434800)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204040958976.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AMP4ePXE-1649068434800)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041001458.png)]
// 谁需要等待别人的回应, 谁进行 p 操作
// 例如: d 等待 a,b,c 的执行 d 进行 p 操作
5. 死锁问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W6gysVzK-1649068434801)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041011814.png)]
// 当每一个进程分配的资源都为总数 - 1时, 最后所以进程的总数 + 1 不可能发生死锁
// 即 13 个
存储管理
1. 存储分配方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CTG1YGoi-1649068434802)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041017599.png)]
// 内存的分配是动态分配的
// 首次适用法: 第一次找到符合要求的
// 最佳适用法: 将所有剩余的空间由小达到大排列, 优先选择最小且能完整容纳的空间
// 最差适用算法: 将所有剩余的空间由小达到大排列, 优先选择最大且能完整容纳的空间切割出来
// 循环首次适用算法: 将所有剩余的空间连成环状, 顺次使用
2. 页式存储方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1P6iDpSN-1649068434802)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041049301.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s1UxIsn5-1649068434802)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041527468.png)]
// 4k = 10^ 12 页内地址为12位
// 转为 16 进制对应后三位
// 物理地址为: 页号对应的页帧号的值 拼接上 后三位
// 淘汰的页面必须是未被访问的页面
3. 段式存储
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yfcgZKlg-1649068434803)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041534635.png)]
// 段号 段长 基址
4. 段页式存储
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pQUqzNcT-1649068434803)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041537458.png)]
5. 快表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lrNwgVD2-1649068434804)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041538810.png)]
6. 页面置换算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yYDgbB6R-1649068434804)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041539535.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zVlxSyqM-1649068434804)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041545906.png)]
// 缺页: 内存中找不到时认为是缺页
// 抖动: 占用跟多的资源, 但是缺页的次数却比跟少资源的次数多
// 先进先出出算法 与 lru 算法的区别
// lru 主张的事最近谁使用的次数最少, 替换掉谁
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X9HIG49S-1649068434805)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041550114.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZIXbDBu-1649068434806)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041555962.png)]
文件管理
1. 索引文件结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0wpf1Q2O-1649068434806)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041557784.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hDjbT5fU-1649068434810)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041603503.png)]
8. 文件和树形目录结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8kW0lCZ-1649068434817)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041605316.png)]
3. 空闲存储空间管理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5xIPpSE8-1649068434822)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041609584.png)]
// 位示图法: 1代表占用, 0代表空
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uz1fcsB9-1649068434823)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041614019.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kItWWrqK-1649068434824)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041623608.png)]
4. 数据传输控制问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zmuqjfig-1649068434825)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041624178.png)]
5. 虚设备和SPOOLiNG
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RDYrbkWk-1649068434826)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041634113.png)]
微内核操作系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4qKPYLgx-1649068434826)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041641637.png)]
数据库
数据库模式
1. 三级模式两级映射
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qIp7WBkc-1649068434827)(https://raw.githubusercontent.com/ximingx/Figurebed/master/imgs/202204041647120.png)]
// 内模式注重存储的格式存储
// 概念模式对应数据库中的表
// 外模式对应数据库中的视图
// 模式/内模式的映像:实现概念模式到内模式之间的相互转换。
// 外模式/模式的映像:实现外模式到概念模式之间的相互转换。
2. 物理独立性
答:数据的物理独立性是指当数据库的内模式发生改变时,数据的的逻辑结构不变。由于应用程序处理的只是数据的逻辑结构,这样物理独立性可以保证,当数据的物理结构改变了,应用程序不用改变。但是,为了保证应用程序能够正确执行,需要修改概念模式/内模式之间的映像。
3. 逻辑独立性
答:数据的逻辑独立性是指用户的应用程序与数据库结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是,为了保证应用程序能够正确执行,需要修改外模式/概念模式之间的映像。
4. 设计过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUhldeK2-1649068434827)(https://raw.githubusercontent.com/ximingx/Figurebed/master/imgs/202204041655318.png)]
ER模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YY1jbas4-1649068434827)(https://raw.githubusercontent.com/ximingx/Figurebed/master/imgs/202204041659326.png)]
// 属性: 椭圆
// 实体: 长方形
// 联系: 棱形
// 关系: 一对一 一对多 多对多
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YlI4DF4E-1649068434828)(https://raw.githubusercontent.com/ximingx/Figurebed/master/imgs/202204041700900.png)]
// 一对一 多对一 模式 转换可以转换为 两个, 也可以转换为三个关系模式
// 多对多的关系至少转换为三个关系模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YfdJuxMx-1649068434829)(https://raw.githubusercontent.com/ximingx/Figurebed/master/imgs/202204041706313.png)]
关系代数 元组运算
1. 交 并 差
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vMI8hszN-1649068434829)(https://raw.githubusercontent.com/ximingx/Figurebed/master/imgs/202204041710931.png)]
2. 笛卡尔积 投影 选择
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m0jD4hjv-1649068434829)(https://raw.githubusercontent.com/ximingx/Figurebed/master/imgs/202204041713744.png)]
3. 连接
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0SOVChoV-1649068434830)(https://raw.githubusercontent.com/ximingx/Figurebed/master/imgs/202204041716043.png)]
规范化理论
1. 函数化依赖
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pXWjsKOZ-1649068434830)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041753200.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Si3eqRsn-1649068434831)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041812128.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QVlBuoTu-1649068434832)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041818855.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GAwo4i3V-1649068434832)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041817570.png)]
2. 范式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vqi6wKtN-1649068434832)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041819159.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hxIw1tJJ-1649068434833)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041821668.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zi0lT6WR-1649068434834)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041821270.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUNzsE49-1649068434834)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041825095.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mUufl1Yn-1649068434835)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202204041827096.png)]
并发控制
数据库完整性约束
分布式数据库
数据仓库与数据挖掘
设计模式
uml类图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AqbeJKk0-1649068434835)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291429965.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jrbVtVwA-1649068434836)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291430855.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BvDn2e1N-1649068434836)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291445999.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NqJ1owfb-1649068434837)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291435282.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CdjyrQV9-1649068434837)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291436838.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46fGVLij-1649068434838)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291436742.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Zv5KwES-1649068434838)(https://raw.githubusercontent.com/ximingx/Figurebed/master/img/202203291436538.png)]
观察者模式
定义: 定义对象之间的一对多依赖, 让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时他的所有依赖者都会收到通知并更新
package Observer;
import java.util.ArrayList;
import java.util.List;
public class ObserverTest {
public static void main(String[] args) {
Subject subject = new Subject();
Task1 task1 = new Task1();
subject.addObserver(task1);
Task2 task2 = new Task2();
subject.addObserver(task2);
subject.notifyObserver("数据第二次改变");
System.out.println("--------------------------");
subject.removeObserver(task1);
subject.notifyObserver("数据第一次改变");
}
}
// 定义了一个主题类
class Subject {
// 观察者(任务)的容器
private List<Observer> containers = new ArrayList<>();
// 增加观察者 (任务)
public void addObserver(Observer observer) {
containers.add(observer);
}
// 删除观察者 (任务)
public void removeObserver(Observer observer) {
containers.remove(observer);
}
// 通知所有观察者 (发布所有的任务)
public void notifyObserver(Object object) {
for (Observer item: containers) {
item.update(object);
}
}
}
// 观察者接口
interface Observer {
void update(Object object);
}
// 实际任务1
class Task1 implements Observer {
@Override
public void update(Object object) {
System.out.println("Task1 received" + object);
}
}
// 实际任务2
class Task2 implements Observer {
@Override
public void update(Object object) {
System.out.println("Task2 received" + object);
}
}
优点:
- 符合开闭原则, 在不改变原来的基础上, 可以轻松的添加监听者
- 可以在运行时建立对象之间的关系
观察者模式案例 浅显易懂
观察者模式案例 浅显易懂
命令模式
package Design.CommandTest; public class CommandTest { public static void main(String[] args) { SaveButton saveButton = new SaveButton(); TextBox box = new TextBox(); PrintCommand printCommand = new PrintCommand(box); saveButton.bindCommand(printCommand); box.setContext("啊呜啊呜"); saveButton.doPrint(); } } class SaveButton { private Command command; public void bindCommand(Command command) { this.command = command; } public void doPrint() { command.execute(); } } class 标签:
tlk2711连接器