类图(Class diagram)——UML之图二(下)

2024-05-08 08:48
文章标签 uml class 之图 类图 diagram

本文主要是介绍类图(Class diagram)——UML之图二(下),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上文主要讲到UML中对类 和类图的理解。本文则侧重写类图涉及的几种关系。

事物和事物之间都是相互联系的,而类又是事物的抽象,所以,类与类之间也是相互联系的。而且这种联系,一定是平常事物之间的联系 是我们并不陌生的联系。

 类之间的关系包括:

1关联

·普通关联

类和类之间最普遍的一种,描述两个类之间有一定的结构关系。用直线表示

图中 图书馆和图书管理员就是普通关联关系。其中修饰部分works in 为关联名。Employee 和Employer表示员工和老板是两个类的角色的名字。

如果将其转为语言的话,即library里有一个属性是librarian,librarian里面也有一个属性是library,表示类与类之间的结构关系。

此外还要注意的是 多重性。

左图中只有两个类。person旁是“ 1···* ”     ,company旁是“ * ”。表示一个公司需要一个或多个人。一个人可以为多家公司工作。

关联如果如图

则和代码的映射为

        

·聚合


    整体和部分之间 可相互独立。用空心菱形表示,并指向整体。在时间上约束并不严格。

比如书架和书是整体和部分关系,书架里包含很多书。没有书架书也可以单独存在。聚合关系。

比如汽车和轮胎之间是整体和部分关系,汽车包括轮胎,没有汽车轮胎也可以单独存在。聚合关系。


·组合

整体和部分之间 不可相互独立。用实心菱形表示,菱形指向整体。存在生命期的附属关系。

比如人和头之间是整体与部分关系。先有人才有头,没有人, 头就不存在。头是人的附属。组合关系。

比如书和页之间是整体与部分关系。先有书才有也,没有书,就没有一页一页。页是头的附属。组合关系。

比如公司和部门之间是组合关系。

         组合和聚合, 两类之间的关系与代码的映射也是有区别的。

2依赖

是一种使用关系。箭头指向被依赖方。它说明一个事物规格说明的的变化可能影响到使用它的另一个事物。但反之未必。

当类A的方法需要用到类B时 则类A依赖类B。比如现代人要依赖计算机。

3泛化

是继承关系。空心箭头指向父类。

例如,猫和动物之间就是泛化关系。猫继承动物的属性。

4实现

UML类图关系中实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,其中接口只是行为的说明而不是结构或者实现。


类图

1 首先看一下系统称重的类图


2 下面看一下 机房收费系统的类图。(点此查看大图)



3 有所改进的类图

以上是我的理解,不妥之处请拿出来批评指教。多谢。



这篇关于类图(Class diagram)——UML之图二(下)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/969864

相关文章

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

类型信息:反射-Class

在说反射前提一个概念:RTTI(在运行时,识别一个对象的类型) public class Shapes {public static void main(String[] args) {List<Shape> shapes = Arrays.asList(new Circle(), new Square(), new Triangle());for (Shape shape : shapes

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

第三章 UML类图简介(设计模式笔记)

第三章 UML类图简介 3.1类 3.2接口 名字层必须有<> 3.3 泛化(继承)关系 箭头终点端指向父类(空心三角形) 3.4 关联(组合1)关系 B类是A类的成员变量 ,称A关联B。 箭头终点端指向B 3.5 依赖(组合2)关系 B类是A类的某个方法的参数 ,称A依赖B。 箭头终点端指向B(虚线) 3.6 实现关系 箭头终点端指向接口(虚线,空心

泛型参Class、Class、Class的对比区别

1.原文链接 泛型参Class、Class、Class的对比区别 https://blog.csdn.net/jitianxia68/article/details/73610606 <? extends T>和<? super T> https://www.cnblogs.com/drizzlewithwind/p/6100164.html   2.具体内容: 泛型参数Class、

c++通用模板类(template class)定义实现详细介绍

有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int { public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x>y)?x:y; } int min( ) { return (x&... 有时,有两个或多个类,其功能是相同的,仅仅是数

Python方法:__init__,__new__,__class__的使用详解

转自:https://blog.csdn.net/qq_26442553/article/details/82464682 因为python中所有类默认继承object类。而object类提供了了很多原始的内建属性和方法,所以用户自定义的类在Python中也会继承这些内建属性。可以使用dir()函数可以查看,虽然python提供了很多内建属性但实际开发中常用的不多。而很多系统提供的内建属性实际

SpringBoot启动报错Failed to determine a suitable driver class

两种解决办法 1.在Application类上加 ` @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) package com.example.demo3;import org.springframework.boot.SpringApplication;import org.springframewo

easyswoole not controller class match

not controller class match composer.json 注册 App 这个名称空间了吗?执行过 composer dump-autoload 了吗?存在 Index 控制器,但是文件大小写、路径都对了吗? task socket listen fail 注意,在部分环境下,例如 win10 的 docker 环境中,不可把虚拟机共享目录作为 EasySwoole 的 T