软考 UML类图 泛化继承 实现 聚合 组合(最强) 依赖(最弱

类图用于说明系统的静态设计视图 类图展现了一组对象、接口、协作和它们之间的关系

构件图(Component Diagram)展现了一组构件之间的组织和依赖。构件图专注于系统的静态实现视图。

对象图(包含的是具体的对象)

包图 包图描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。

序列图 描述了以时间顺序组织的对象之间的交互活动

1.联系(最弱)

2. 泛化继承

3. 实现

4.依赖(比较弱)

取款用例要等 存款用例执行完才执行, 用例执行有先后顺序,是一种在时间上的依赖关系

方法的参数(Parameter)​​:如上文的例子,一个类将另一个类作为其方法的参数。这是最常见的依赖形式

​​局部变量(Local Variable)​​:在一个类的方法内部,创建了另一个类的局部变量

静态方法调用(Static Method Call)​​:一个类调用了另一个类的静态方法。

依赖注入等,都是依赖关系

复制代码
依赖关系是UML类图中耦合度最弱的一种关系,它描述了一个类临时使用另一个类的情形,这种使用通常是偶然的、临时的,而非长期持有的。下面通过几个例子来具体说明。
依赖关系是UML类图中耦合度最弱的一种关系,它描述了一个类临时使用另一个类的情形,这种使用通常是偶然的、临时的,而非长期持有的。下面通过几个例子来具体说明。

🔧 一个简单的例子:人与工具
想象一下一个人(Person类)要拧螺丝,他需要一把螺丝刀(Screwdriver类)来完成这项工作。在这个场景中,Person类​​临时使用​​了Screwdriver类,它们之间就构成了依赖关系
。

​​UML表示​​:一条从Person指向Screwdriver的​​虚线箭头​​。

​​代码表现​​:Screwdriver作为参数出现在Person类中某个方法的参数列表里
。

public class Screwdriver {
    public void screw() {
        System.out.println("拧螺丝");
    }
}

public class Person {
    // "拧螺丝" 方法依赖 Screwdriver 对象作为参数
    public void screw(Screwdriver screwdriver) {
        screwdriver.screw(); // 临时使用螺丝刀
    }
}
这里,Person对象只是在执行screw方法时才需要Screwdriver对象,方法结束后,这个临时关系就解除了。螺丝刀并非人固有的属性。

5. 聚合

"部分"可以独立于"整体"存在。整体的生命周期不会直接决定部分的生生命周期命周期

比如: 学校 和 老师; 车和轮胎就是 聚合关系

6. 组合(最强) 部分不能脱离整体独立存在

比Aggregation 聚合关系更强的 Composition 合成关系, 比如一个接口/类种的方法

复制代码
public interface PhonePlanStrategy {

    public double doOperation(int talkTime, int flow);
 
}   如上代码 , PhonePlanStrategy 类和里面的doOperation 方法 属于什么关系, 是类图的组合关系吗?
引用 11 篇资料作为参考
你提供的代码片段中,PhonePlanStrategy是一个接口(interface),doOperation是该接口中声明的一个抽象方法。它们之间的关系是 ​​接口与其抽象方法​​ 的声明关系,这属于 ​​组合关系(Composition)​​。
组合关系 (Composition)​​

​​强拥有的"整体-部分"关系​​,部分的生命周期与整体完全绑定。​​接口/类与其方法​​ 就是这种关系。

实心菱形箭头,从整体指向部分。

​​PhonePlanStrategy接口(整体) 与 doOperation方法(部分)​​。方法无法脱离接口独立存在。
相关推荐
hssfscv1 天前
软件设计师2021上、下上午题错题解析+2022上、下下午题训练5道 练习真题训练16
笔记·设计模式·uml
_codemonster3 天前
UML静态图之构件图(也叫组件图)详解
uml
_codemonster6 天前
UML静态图之类图详解
uml
深念Y7 天前
我在 Trae 里用 UML-mcp-renderer 画图,发现了 MCP 跟 CLI+Skills 的区别
agent·uml·cli·幻觉·mcp·trae·skills
hssfscv8 天前
软件设计师下午题训练1-3题+2019上上午题错题解析 练习真题训练13
笔记·设计模式·uml
今儿敲了吗10 天前
面向对象(二)——UML基础
笔记·uml
程序猿多布14 天前
UML 类图
uml
Wyc7240914 天前
UML建模
uml·个人学习
rolt15 天前
[答疑]把缺省伪状态和历史伪状态合并可行吗
软件工程·架构师·uml
程序猿多布15 天前
UML 关系详解
uml