软件设计师(下午题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,要记住

相关推荐
北顾笙9804 分钟前
day22-数据结构力扣
数据结构·算法·leetcode
IT枫斗者4 分钟前
AI Agent 设计模式全景解析:从单体智能到分布式协作的架构演进
人工智能·redis·分布式·算法·spring·缓存·设计模式
老鱼说AI5 分钟前
长文预警!大模型面试:关于大模型微调的进阶与工程部署讲解
人工智能·深度学习·神经网络·学习·自然语言处理·面试·职场和发展
2301_822703205 分钟前
鸿蒙flutter三方库适配——笔记与知识管理应用:Flutter Markdown实战
笔记·算法·flutter·华为·图形渲染·harmonyos·鸿蒙
人道领域10 分钟前
【LeetCode刷题日记】454:四数相加Ⅱ
算法·leetcode
她说彩礼65万10 分钟前
C语言 指针运算
c语言·数据结构·算法
skilllite作者11 分钟前
自进化 Agent 的 skills 别长成烟囱:从多入口分叉到统一发现与 spec 防火带
人工智能·算法·rust·openclaw·agentskills
kaikaile199515 分钟前
移动机器人路径跟踪的设计与仿真:模型预测控制(MPC)详解
人工智能·stm32·嵌入式硬件·算法
进击的荆棘1 小时前
递归、搜索与回溯——递归
算法·leetcode·递归
2301_822703202 小时前
鸿蒙Flutter第三方库FlutterUnit组件百科适配——具体示例还原演示1
算法·flutter·华为·harmonyos·鸿蒙