软考 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方法(部分)​​。方法无法脱离接口独立存在。
相关推荐
rolt3 天前
软件需求设计方法学全程实例剖析幻灯片04-系统用例图和用例规约[202601更新]
产品经理·需求分析·uml
workflower7 天前
和测试角色相关的问题
软件工程·软件构建·开源软件·uml·软件需求
rolt8 天前
软件需求设计方法学全程实例剖析幻灯片02-愿景[202512更新]
产品经理·需求分析·架构师·uml
rolt8 天前
软件需求设计方法学全程实例剖析幻灯片03-业务用例图和业务序列图[202601更新]
产品经理·需求分析·uml
Warren2Lynch9 天前
如何使用Visual Paradigm AI Chatbot创建3D打印机UML状态机图:综合指南
人工智能·uml
AM越.9 天前
Java设计模式超详解--代理设计模式(含uml图)
java·设计模式·uml
攀登的牵牛花9 天前
前端向架构突围系列 - 架构方法(二):UML前端建模的一般方法和工具
前端·前端框架·uml
Ljubim.te10 天前
软考之事物关系及图类题作答
uml
AM越.10 天前
Java设计模式超详解--组合设计模式(含uml图)
java·设计模式·uml
AM越.11 天前
Java设计模式超详解--策略设计模式(含uml图)
java·设计模式·uml