软件设计师(下午题2)、UML与设计模式

UML

知识前提

A---->B A(依赖事物)依赖于B(独立事物),当B发生变化会影响A。

**关联:**一根无向线,就是一条直线,上面是重复度,下面是名称

实心菱形就是组合,空心就是聚合,然后菱形右边表示整体,左边表示部分

泛化:子类------>父类 就是继承的意思

实现:类----->接口

用例和用例的关系

包含(include)、扩展(extend)、泛化( generalize)

扩箭基(扩展关系箭头指向被基础用例),包箭被(包含关系箭头指向被包含用例)

包含(include)、扩展(extend)都是--------> 就是单词不一样


问题一:看用例之间的关系(重点)

1、如果是泛化关系(要认识泛化的图标)那就绝对是父类和子类,找说明里的父类和子类有哪些,例如支付方式是父类,微信支付和支付宝支付是子类

2、如果是包含关系,要知道箭头指向的是被包含的 ,例如A----->B就是A包含B,A用例实现前会先实现B用例,比如说删除图书------->查找图书,每次删除图书都要先查找图书

问题二

看跟要求的类名相关联的已知的类名有哪些,然后根据已知类名和要求类名的关系去说明里找看看有没有符合这样关系的描述,找到这句话把这句话的名词都给标出来,然后根据题意去看那个名词更适合

1、一般像类图中有泛化这样的关系的,那就直接去说明中找对应的那种父类和子类这样有关系的名词

2、一般有聚合或组合关系的那就直接去找说明里的有整体-部分关系、包含关系、并且两者直接由联系的,一般都是一句话来描述这两个名词直接的关系,例如硬币器中的硬币,这就是包含关系,整体部分关系

问题三:


设计模式

知识前提

接口实现用implements,继承用extends

定义接口用interface,抽象用abstract

public:公有访问,不受任何限制。

private:私有访问,只限于本类成员访问,子类、实例都不能访问。

protected:保护访问,只限于本类和子类访问,实例不能访问。

internal:内部访问,只限于本项目内访问,其他不能访问。

注意事项

原型模式:要调用复制方法 ,要注意转换类型,调用构造方式时注意它的参数

组合模式,打印,注意要递归

空是填多个单词的,abstract class

Super(name),调用父类的构造方法

装饰器,注意子类赋值this,父类有没有定义这个属性 new(new(null))

状态模式注意:如果父类已经定义了,你就直接用父类的,不要new

访问者模式:accept接收

传当前类用this,要记住

相关推荐
练习时长一年6 小时前
LeetCode热题100(最小栈)
java·算法·leetcode
vi121236 小时前
土壤与水分遥感反演技术综述:原理、方法与应用
人工智能·算法·无人机
智者知已应修善业6 小时前
【蓝桥杯龟兔赛跑】2024-2-12
c语言·c++·经验分享·笔记·算法·职场和发展·蓝桥杯
Tisfy6 小时前
LeetCode 955.删列造序 II:模拟(O(mn)) + 提前退出
算法·leetcode·字符串·题解·遍历
雨中飘荡的记忆6 小时前
享元模式深度解析:看Java如何优雅节省内存
java·设计模式
im_AMBER6 小时前
Leetcode 82 每个字符最多出现两次的最长子字符串 | 删掉一个元素以后全为 1 的最长子数组
c++·笔记·学习·算法·leetcode
姓蔡小朋友6 小时前
后端面试八股文
面试·职场和发展
java修仙传6 小时前
力扣hot100:旋转排序数组中找目标值
算法·leetcode·职场和发展
式5166 小时前
量子力学基础(二)狄拉克符号与复数向量空间
人工智能·算法·机器学习
k***92167 小时前
【Linux】进程概念(六):地址空间核心机制
linux·运维·算法