软考 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方法(部分)​​。方法无法脱离接口独立存在。
相关推荐
攻心的子乐1 天前
软考 UML 用例图 extend扩展关系 include包含关系 泛化继承inherit关系
uml
「QT(C++)开发工程师」12 天前
UML | 最好的类图设计工具结合CSDN天启呈现-领路架构师
数据库·uml·类视图
小鱼儿LY12 天前
软考系统架构设计师之UML统一建模语言
系统架构·软考·uml·架构设计师
workflower24 天前
GitHub宕机自救指南
测试用例·需求分析·uml·敏捷流程·结对编程
青草地溪水旁1 个月前
Astah UML 中,状态机(State Machine)的建模最合适使用「UML 状态图(State Diagram)」
uml·状态机
Liquad Li1 个月前
UML(统一建模语言)详解
架构·uml
青草地溪水旁1 个月前
UML函数原型中stereotype的含义,有啥用?
c++·uml
青草地溪水旁1 个月前
UML函数原型中guard的含义,有啥用?
c++·uml
青草地溪水旁1 个月前
UML函数原型中constraint的含义,有啥用?
c++·uml