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

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,就是关联关系类

转载于:https://www.cnblogs.com/yjmyzz/p/3739612.html

UML:类图复习-鸡生蛋,蛋生鸡相关推荐

  1. 一张图看懂UML类图

    面向对象中我们经常使用UML类图演示类之间的关系,记得以前在学<软件工程>的时候那几个符号硬是没记住,今天回过头看看,理一理,见下图: -------------------------- ...

  2. 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的 ...

  3. 【转】 UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合

    目录(?)[-] 继承 实现 依赖 关联 聚合 组合 类图及类图中的关系 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类( ...

  4. UML类图五种关系与代码的对应关系

    UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一.依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系. 因 ...

  5. Android UML类图介绍及画法

    转载于:http://uule.iteye.com/blog/2078935 继承.实现是三角型箭头,其他都为箭头 组合.聚合都有一个菱形端,且都为实线,其他都无菱形端 继承是实线,实现是虚线 关联是 ...

  6. UML类图(动物的表述)

    UML类图 上节课(复习) UML视图 中心对象:*动物* 依赖关系 第一级子对象:*鸟* 组合关系(强拥有关系) 第二级子对象:大雁 聚合关系(弱拥有关系) 接口方法 第二级子对象:鸭子 唐老鸭 第 ...

  7. UML类图实例 (动物)

    首先是复习一下UML中九种图的理解:http://xhf123456789plain.blog.163.com/blog/static/172880482201192222144421/ 画用例图:h ...

  8. 最全Pycharm教程(43)——Pycharm扩展功能之UML类图使用 代码结构

    版权声明:本文为博主原创文章,转载时麻烦注明源文章链接,谢谢合作 https://blog.csdn.net/u013088062/article/details/50353202 1.什么是UML ...

  9. idea添加database插件_IDEA高级玩法:集成JIRA、UML类图插件、SSH、FTP、Database管理......

    优质文章,第一时间送达 上一篇: 下一篇:(已修复) 作者: 菩提树下的杨过 出处: http://yjmyzz.cnblogs.com dea还有很多高大上的功能,易用性几乎能与vs.net媲美,反 ...

最新文章

  1. .NET程序的性能要领和优化建议
  2. mysql为什么要单例_为什么要用单例,你真的会写单例模式吗
  3. 剪纸游戏(博弈论)(SG函数)
  4. Qt多线程编程的主要线程类
  5. python实时数据流_python – 使用烧瓶web-app监控实时数据流
  6. dubbo服务接口如何mock_小程聊微服务-基于dubbo的mock测试系统
  7. ci 页面php代码,Cicool v3.1.0 - PHP页面、表单、API、CRUD生成器
  8. won10 mysql 5.7.22主从同步
  9. 012-JDK可视化监控工具-jstack
  10. DNT精英论坛(暨.NET北京俱乐部)第1期:见证.NET,风口上的成功案例!
  11. 示例填充图片_用示例解释洪水填充算法
  12. 解密android日志xlog,安卓开发技巧2:自定义日志工具类XLog的实现
  13. spring的@Value注解使用
  14. USB鼠标卡顿解决办法
  15. m8 windows android,HTC M8 WP版正式发布 通刷Android和WP8.1
  16. Windows Performance Toolkit(WPT)入门
  17. 劲乐园合歌(幽灵圣典+飞吧喜鹊+唯一+v3+幽灵圣典2)1铃声 劲乐...
  18. 电容旁路(bypass)和去耦(decoupling)的区别
  19. 编程日记0302 c-free注册码
  20. Opencv学习----Opencv宏定义(CV_8U、CV_8S、CV_16U...)

热门文章

  1. 小学数学计算机教案模板,小学数学的教案模板
  2. 学点经济学--经济学原理
  3. dutoj1007圆桌会议
  4. MySQL案例——基础查询
  5. 破主板 ASUS P4S533MX
  6. 该定酒店了!往届学长学姐:我们当时就是低估了订房的可怕程度!
  7. 2021-2027全球与中国扫描式紫外可见分光光度计市场现状及未来发展趋势
  8. 一个奇鸽破解版 :超好用的工具箱(附一个奇鸽App下载)
  9. MVC、MVP、MVVM 模式(待续)
  10. 9.3_bounding-box