首页 > 其他分享 >UML类图——类之间的关系

UML类图——类之间的关系

时间:2023-05-04 15:33:09浏览次数:35  
标签:关系 Engine Car 类图 class engine UML public

关联关系(实线箭头)

是一种结构化关系,表示一类对象与另一类对象之间有联系。Java,c++,c#等编程语言在实现关联关系时,通常将一个类的对象作为另一个类的属性

- 双向关联
- 单向关联
- 自关联
- 多重性关联

聚合关系(带空心菱形的实线箭头)

表示一个整体与部分之间的关系,在聚合关系中成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在

public class Car{
    private Engine engine;
    public Car (Engine engine){
        this.engine = engine;
    }
    public void setEngine(Engine engine){
        this.engine = engine;
    }
}
public class Engine{
    ......
}

Engine是Car的一部分,但是Engine可以脱离Car单独存在,在Car中不直接实例化Engine,而是通过构造方法或者setter方法将在类外部实例化好的Engine对象以参数的形式传入到Car中,这种传入方法叫注入(Injection),Car和Engine实例化时刻不同,因此他们之间不存在生命周期的制约关系。

组合关系(带实心菱形的实线箭头)

表示整体与部分之间的关系,但是整体与部分是共同生死的关系.

public class Head{
    private Mouth mouth;
    public Head(){
        mouth = new Mouth();
    }
}
public class Mouth{
    .......
}

head中直接创建了mouth对象,同生共死,拥有相同的生命周期

依赖关系(虚线箭头)

是一种使用关系,在需要表示一个事物使用另一种事物时使用依赖关系。依赖关系体现在某个类的方法使用另一个类的对象作为参数,又依赖的一方指向被依赖的一方。

public class Driver{
    public void drive(Car car){
        car.move();
    }
}
public class Car{
    public void move(){
        ......
    }
}

泛化关系(带空心三角的实线箭头)继承关系

接口与实现关系(带空心三角的虚线箭头)

标签:关系,Engine,Car,类图,class,engine,UML,public
From: https://www.cnblogs.com/sorrymine/p/17371401.html

相关文章

  • SqlSessionFactory、SqlSession、Druid之间的关系梳理
    SqlSessionFactory是什么?SqlSessionFactory 是Mybatis的核心接口之一,它是用于创建SqlSession对象。Mybatis的SqlSession对象是负责管理应用程序与数据库之间一组事务的机制,并为应用程序提供访问数据库的方法。SqlSession是线程不安全的对象,因此应始终使用它的请求/响......
  • kettle和jdk版本对应关系
    kettle是基于java开发的,运行kettle需要java环境,即要安装jdk,那么kettl与jdk版本之间的对应关系是:另外,如果kettle中需要连接数据库,那么要把数据库驱动拷贝到kettle的lib目录中。连接数据库的方式一般使用jdbc,如果需要odbc数据源的方式连接数据库(比如东华的cache数据库),只能使用ke......
  • 一文搞懂 x64 IA-64 AMD64 Inte64 IA-32e 架构之间的关系
    想要搞清楚x64、IA64、AMD64指令集之间的关系,就要先了解Intel和AMD这两家公司在生产处理器上的发展历史。x86处理器1978年Intel生产了它的第一款16bit 处理器8086,之后几款处理器名字也都以86结尾,包括80186,80286,80386,80486,这些处理器的架构被统一称为x86架构。其......
  • java 类继承关系
    获取继承关系java中没有多继承,故一个类最多只有一个父类,但可实现多个接口.利用反射可获取类的信息(属性,方法,继承关系)获取类自身Classcz1=String.class;Classcz2="abc".getClass();Classcz3;try{cz3=Class.forName("java.lang.String");}catch......
  • PMP-07-运营与项目管理的关系
    1.运营和项目管理是两种性质不同的工作,运营是按照原有的最佳实践把工作做好,为企业带来现金流。2.当日常运营中,事情做到一定程度的时候,可能就会发起一个项目,目的是找到一个更好的最佳实践和工作方式。3.运营和项目管理是两种性质不同的工作,如果按照日常运营的方式做项目,那这个项......
  • 无线键盘无法打开数字键盘numlock的解决方法
    1、把以下文本另存为后缀为vbs的脚本,运行即可打开数字小键盘。2、按Win+R,运行shell:startup3、把脚本拖入打开的窗口。以后每次开机都会运行此脚本,打开NUMLOCK数字键盘。'按Win+R,运行:shell:startup把脚本拖入其中SetKeyToPress=WScript.CreateObject("WScript.Shell")KeyToPr......
  • 推翻OpenAI结论,DeepMind重新定义预训练的参数和规模关系!
    文|王思若前言从20年开始,“最大语言模型”的桂冠被各大研究机构和科技公司竞相追逐,堆砌参数,猛上算力,开启了“大炼丹”时代,模型参数量仿佛越大越好,甚至GPT-4模型参数量将超过100万亿的传闻甚嚣尘上。当把视角落在今年下半年,大模型的“军备竞赛”似乎戛然而止,22年4月,Google发布了5400......
  • 项目政治与项目失败的关系
       具有政治头脑是当今项目经理的基本功。你不可能再仅仅依靠技术和管理能力管理一个项目,一定要懂得你将必须应付的人和组织的政治性。政治和项目冲突是不可避免的,是项目管理的一种生活方式。未来的项目经理必须在政治上变得机敏。一、政治风险   对于大型或复杂的项目......
  • mapbox如何调整图层层级关系
    在MapboxGLJS中,您可以使用moveLayer方法来调整图层的层级关系。其语法如下:map.moveLayer('layerID','beforeID');其中,layerID是您要调整的图层的ID,beforeID是该图层所要移动到的目标图层的ID,表示将该图层放在目标图层的前面。例如,假设您有两个图层分别为layer1和laye......
  • UML图之类图
    https://www.jianshu.com/p/a237f96e2292 最近在学习领域驱动设计,重新温习了一下UML图。定义:UML是一种面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言,UML使用面向对象的建模工具,但独立于任何程序设计语言UML绘图规范: im......