UML建模案例分析-类图中的关系

概要

类图之间的关系比较多,绝大多数情况下重点关注的还是关联关系、组合、聚合这三种,最终是如何对应到代码上的。

例子

以订单为例:订单和订单项之间是组合关系,这和数据库实体之间不一样。数据库实体有主外键,开发数据库时间久了再去建立类图,就总不放心两个类之间通过什么关联的,就总想着增加一个“外键”,比如在订单项类中增加一个属性“订单编号”,这回就放心了。

实际上,订单和订单项类之间是这样访问的:

Class 订单{

public:

合计总价();

计算附加费();

检查订单完整性();

检查库存();

private:

订单名称;

下单日期;

税金;

运费;

订单项;  //订单项类对象的list

};

订单项和零件类之间也是如此,只是关联关系有方向,即,只能在订单项中创建零件的对象,反之不行。如果要求相互都可以创建对方的对象,关联关系不加箭头,即没有方向。

另外强调一点,因为订单和订单项之间是组合关系,组合和聚合这种表示"强"拥有的关系,通常都是让订单项作为订单的属性;而订单项和零件之间这种“弱”拥有关系,通常都是在函数中需要临时访问时才动态创建一个零件类对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java聚合跑腿系统对接云洋聚合跑腿系统源码低价快递小程序APP公众号源码

一站式解决方案 🚀引言:跑腿服务的市场需求与聚合趋势 在快节奏的现代生活中,跑腿服务成为了越来越多人的选择。为了满足这一市场需求,各大跑腿平台纷纷涌现。然而,如何将这些平台进行有效整合,提供更为便…

比特币交易繁忙的一天

早晨:市场开盘与准备工作 6:00 AM - 全球市场监测 交易员们早早起床,开始监测全球市场动态,尤其是亚洲市场的动向。通过查看新闻、分析报告和市场数据,了解可能影响比特币价格的因素。 7:00 AM - 团队会议 召开晨会,讨论当天的交易策略。团队分析前一天的交易情况,评…

HTML网页大设计-家乡天水

代码下载: https://pan.quark.cn/s/6bad4cfaefda

Windows下vscode配置C++环境

一、vscode下载及安装 vscode官网 选安装位置。 勾选这几项。 1.vscode界面中文配置 (1)点击扩展小图标,搜索插件,找到插件Chinese (Simplified) (简体中文) Language Pack,点击install。 (2&#xf…

【vue组件库搭建07】Vitest单元测试

vitest官网 vue-test-utils 我们的测试框架选择的是 Vitest 和 vue-test-utils。两者的关系为: Vitest 提供测试方法:断言、Mock 、SpyOn 等方法。vue-test-utils: 挂载和渲染组件: Vue Test Utils 允许您在隔离中挂载组件,这意…

实用机器学习(快速入门)

前言 因为需要机器学习的助力,所以(浅浅)进修了一下。现在什么东西和AI结合一下感觉就好发文章了;我看了好多学习视频,发现机器学习实际上是数学,并不是常规的去学习代码什么的(虽然代码也很简…

我应该使用 Pinia 还是 Vuex?

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 当项目逐渐变大时,状态管理的问题开始显现了出来。这时,两个强大的状态管理工具:Vuex 和 Pinia。该选择哪一个呢? 今天带各位大佬对比下两者的优势在何处,以及如何选择合适的状态管理库! 什么是 Vuex? Vuex 是 Vue.j…

湖仓一体(Lakehouse)

湖仓一体(Lakehouse)是一个新兴的数据架构范式,旨在结合数据湖(Data Lake)和数据仓库(Data Warehouse)的优点,解决传统数据处理架构中的一些挑战。 数据湖和数据仓库的概念回顾&…

时间管理的6张清单:做个时间清单控,提高时间颗粒度!

时间管理管理的到底是什么?我觉得其根本就是时间的颗粒度。这与大多数行业精英的时间管理不谋而合,也就是身段越高,时间管理的颗粒度越高。比尔盖茨的颗粒度是5分钟,精确到与人握手,按秒来安排!接下来&…

Amesim-帮助文件翻译与总结-tigger(滞环)

元件应用说明 滞环一般应用于控制策略制定,该原件类似于一个开关,当输入值大于设置的high input threshold Value时输出high out value;小于low input threshold value时输出low output value。若输出值在high input threshold Value与low i…

大模型应用中CoT(思维链)技术详细介绍

大模型应用中CoT(思维链)技术详细介绍 1. 背景 在自然语言处理(NLP)领域中,尤其是语言模型(如GPT-3, BERT等)的应用中,理解和推理复杂的文本信息变得越来越重要。Chain-of-Thought…

01. 课程简介

1. 课程简介 本课程的核心内容可以分为三个部分,分别是需要理解记忆的计算机底层基础,后端通用组件以及需要不断编码练习的数据结构和算法。 计算机底层基础可以包含计算机网络、操作系统、编译原理、计算机组成原理,后两者在面试中出现的频…

走进linux

1、为什么要使用linux 稳定性和可靠性: Linux内核以其稳定性而闻名,能够持续运行数月甚至数年而不需要重新启动。这对于服务器来说至关重要,因为它们需要保持长时间的稳定运行,以提供持续的服务 安全性: Linux系统…

解锁甘肃平凉传统面制品,大烤馍来袭

在平凉这片广袤而多彩的土地上,美食犹如璀璨星辰,点缀着人们的生活。其中各式各样的传统面点以其独特的风味和魅力,散发着诱人的香气。 食家巷大烤馍,作为甘肃传统面制品的代表之一,承载着悠久的历史和深厚的文化底蕴。…

postman录制设置

一、前言: ​ postman是一个很好接口调试或是测试工具,简单方便,不需要很复杂的流程与技术,并且也具备录制条件。对于接口不了解,没有明确对应的说明,但又想通过接口进行一些测试使用其录制是一个不错的办…

LangChain —— Message —— How to trim messages

文章目录 一、概述二、获取最后的 max_tokens 令牌三、获取第一个 max_tokens 令牌四、编写自定义令牌计数器五、连成链六、使用 ChatMessageHistory 一、概述 所有模型都有 有限的 上下文窗口,这意味着它们可以作为输入的 token 数量是有限的。如果你有很长的消息&…

C语言——数组、sizeof关键字

一、数组 1.数组的引入与定义: C语言中的数组是一种基本的数据结构,用于在计算机内存中连续存储相同类型的数据。数组中的每个元素可以通过索引来访问,索引通常是一个整数,用于指定元素在数组中的位置。在C语言中,数…

北京服装学院学报-自然科学版

《北京服装学院学报》(自然科学版)创立于1981年,是由北京市教委主管、北京服装学院主办的自然科学类学术期刊(国际刊号:ISSN1001-0564,国内刊号:CN11-2523/TS)。学报为季刊,每年3、6…

【香橙派】Orange pi AIpro开发板评测,看小白如何从0到1快速入门,以及亲测手写数字识别模型训练与推理

作为业界首款基于昇腾深度研发的AI开发板,Orange Pi AIpro无论在外观上、性能上还是技术服务支持上都非常优秀。 接口丰富,扩展能力强。支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。 目录 开发板介绍亮点顶…

【C++】C++中的友元函数详解

目录 一.友元函数介绍 二.友元函数的使用场景 三.友元函数的注意事项 一.友元函数介绍 友元函数(Friend Function)是C中的一个特殊概念,它允许非成员函数访问类的私有(private)和保护(protected&#x…