UML:类图复习-鸡生蛋,蛋生鸡

这是前一阵《高级软件工程》课堂上,老师随堂出的一道讨论题,随手贴在这里:

ps: 今天是520,正好聊一些OoXx,关于爱的扯淡话题:)

题目:“鸡生蛋,蛋孵鸡”,世间万物生生不息,如何用O-O中的类图以尽可能接近现实的方式来描述?

参考答案:

解析:

1、Chicken是基类,Hen(母鸡),Cock(公鸡)从Chicken派生,

2、Hen与Egg是关联关系,注意关联关系中的“重数”表示,从Hen向Egg的方向看去,0..*表示1只母鸡,可能下“0或多”个蛋,而反过来,1只蛋,却只能由1只母鸡所生

3、Egg与Chicken也是关联关系,类似的,从Egg向Chicken的方向看去,0..1表示这只蛋,有可能孵化出1只鸡(不论公母),也有可能孵不出来(这是1个悲惨的蛋)

4、Hen与Cock也有关联关系,1只公鸡可能与0或多个母鸡OOXX,反过来也是类似的道理

5、虚线表示“关联关系类(Association Class)”,Hen与Cock发生关系后,所生的蛋才能称为受精蛋(爱的结晶),才有可能孵化出1只小鸡,这也正好对应了解析中的第3点,但是我们也知道,这世上Hen单靠自己,也能下蛋,只不过孵不出小鸡(个人觉得这是鸟类一个比较NB的功能)

注:

关联关系类,技术层面讲,就是建一个小类,记录Hen,Cock这二个的ID

商城系统中,有很多类似的应用,比如Product(商品)与Category(商品分类),如果一个商品可按不同标准归到多个类,通常会在database中新建一张小表,记录Product与Category的ID映射,这张表对应的Class,就是关联关系类

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序人生 阅读快乐

[C++数值算法]

本书选材内容丰富,除了通常数值方法课程的内容外,还包含当代科学计算大量用到的专题,如求特殊函数值、随机数、排序、最优化、快速傅里叶变换、谱分析、小波变换、统计描...

9610
来自专栏Data Analysis & Viz

乱炖“简书交友”数据之代码

上一篇文章乱炖数据之2700余篇“简书交友”专题文章数据的花式玩法发布后,不少人想学习下代码,由于此前不曾在GitHub上开源过,流程还不熟悉,再者本项目中很多...

9410
来自专栏IT派

使用 Python 分析 14 亿条数据

Google Ngram viewer是一个有趣和有用的工具,它使用谷歌从书本中扫描来的海量的数据宝藏,绘制出单词使用量随时间的变化。举个例子,单词 Pytho...

10420
来自专栏北京马哥教育

使用 Python 分析 14 亿条数据

Google Ngram viewer是一个有趣和有用的工具,它使用谷歌从书本中扫描来的海量的数据宝藏,绘制出单词使用量随时间的变化。举个例子,单词 Pytho...

9700
来自专栏杨世宇的专栏

Now 直播发现页短视频瀑布流优化

发现页是Now直播短视频的主要曝光平台(如下图),内容以运营人工筛选为主,瀑布流式展示。

1K00
来自专栏后台全栈之路

《ArcGIS 地理信息系统教程》概念笔记

之前研究了 GIS,接触到了很多 GIS 的概念。因此找了《 ArcGIS 地理信息系统教程(第 4 版)》来看。书的版本比较老了,不过一些基本概念还是想通的,...

32960
来自专栏杨建荣的学习笔记

字符画,你可能未知的美 (76天)

在平时的工作中,如果接触字符界面时间比较长的时候,都会无意识的感觉到单调,认为字符只能表达一些抽象复杂的东西,对于图形的那种简单和清晰,显得有些力不从心。 今天...

31650
来自专栏数据派THU

一文带你入门图论和网络分析(附Python代码)

本文从图的概念以及历史讲起,并介绍了一些必备的术语,随后引入了networkx库,并以一个航班信息数据集为例,带领读者完成了一些基本分析。

59220
来自专栏PPV课数据科学社区

【学习】excel函数嵌套

1. 前言: 相信很多学习EXCEL的同伴都会时常将一句话挂在嘴边: “请老师教我下这个公式怎么写?” 要么就是: “老师太牛了,这么厉害的嵌套您是怎么写出来...

36290
来自专栏玩转全栈

机器学习-数据清洗(二)

如果接触到我上面的那篇文章,机器学习-入门,应该很清楚本文意欲为何。如果不知道为什么,请阅读一下那篇文章,以便打下基础,ok,废话不多说了,进入正题。

38610

扫码关注云+社区

领取腾讯云代金券