当前位置: 首页 > news >正文

大话UML中类之间的关系 (r4笔记第83天)

关于uml的内容在大学的时候学习过,感觉是花拳绣腿的一些知识,想用但是限于自己的认知和经验,实在是很难运用,到了工作的时候,感觉不需要这些工作也照样能做得很出色,过度的自信就这样维持了几年,等到积累了一定的项目经验,对于设计的关注程度也逐渐提升,有时候想表达一些设计的思想,自己DIY的图表可能只有自己能够看懂,看一些设计思想中的图也是似懂非懂,看来刚学外语也是不够的,还得学习UML,无规矩不成方圆嘛,让UML来作为我们设计中的思想转化器。说起UML中类之间的关系,大体有以下几类继承关系(Generalization);实现关系(Realization);依赖关系(Dependency);关联关系(Association);聚合关系(Aggregation);组合关系(Composition);个人认为理清这些关系远比学习这些关系的图示更加有用,就不在本文中一个一个画了,在稍后的博文中联系代码做进一步的补充。继承关系(Generalization) 这个 关系很好理解,也面向对象的三大特性之一。子女继承了父母的面貌和性格特征,我们需要继承老一辈的光荣传统等等都是继承的体现。实现关系(Realization); 这个关系和多态也很有关系,一龙生九子,九子各不同,这九子各有各的特点,还有大家见面的问候,你好,可以有中文的说法,方言的说法,英文的说法,各种外语的说法等等。依赖关系(Dependency); 依赖关系也很形象,比如我们的生活需要新鲜的空气 ,安全的食物,这些都是健康生活所依赖的。关联关系(Association); 这种关系是类之间的关系中最普遍的,比如我们网购,我们作为顾客和订单之间的关系,比如我们 使用的手机拍照功能,手机中的拍照图标和拍照功能之间就是一种关联,一按下去就会关联拍砖功能。聚合关系(Aggregation); 代表个体/部分的对象则有可能被多个代表整体的对象所共享,而不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏,比如电脑由CPU,硬盘,主板等等组成,如果缺了某一个,电脑还是存在的,只是不能用而已。组合关系(Composition); 在组合关系中,如果代表整体的对象被销毁或破坏,那么代表个体/部分的对象也一定会被销毁或破坏。比如小鸡有两只翅膀,我们可以通过一个虚拟的例子来说明,请勿对话入座。介绍认识 在无意的一个场合,有两个年轻人互相认识了,可能因为在一个班级,可能因为住的比较近,可能因为父母的原因,也可能因为同事朋友的介绍,彼此交换了手机号码,就可以在节假日的时候发个短信互相祝福,这种关系,我们可以理解为关联。进入热恋可能在一些了解中,两个人对彼此都有了一些认识,逐渐产生好感,最后超越了革命的友谊,两个人相恋了,短信已经远远不能满足两个人之间彼此的新鲜感和思念,电话粥也每天都煲到手机电池发烫。两个人彼此联系非常密切,我们可以理解为依赖。幸福家庭生活总是要继续,两个人的认知有了进一步的升华,于是考虑了今后的人生大事,在突破父母的阻拦,生活的艰辛之后,两个人还是走在了一起,组件了幸福的家庭。孩子也是作为父母恩爱的结晶,作为彼此献给对方的礼物,生活中谁不不能离开谁,家庭的幸福就在这些柴米油盐中慢慢的流逝,谁都有过青春年华,都需要承担起生活的重担,家庭的幸福。这也可以理解为组合,父母孩子,幸福的家庭。人生方向的选择 有了孩子,大把大把挥霍的日子就得收敛起来了,安心相夫教子或者在柴米油盐中盘旋,每天都是围绕在孩子这个小宇宙中旋转,限于精力,可能有些家庭选择妻子留下来照顾孩子,由丈夫来工作持家,工作和生活在这个时候就是一种选择,但是这个决定还是得做。这也是家庭生活中的一个方向选择,不管你做了何种选择,生活还得继续,日子就在这样的日子中一天一天度过。这也可以理解为聚合,工作还是持家,都是我们生活中的一部分。孩子的教育总是在很多年前听到好多家长朋友说对于自己的孩子只要他健康快乐就好,其它别无所求,但是等孩子长大了,肯定就不会那么想了,你忍心看着孩子落后在起跑线后,大家都在推崇某种科学的学习方法,各种学习班,你不学上几门?有时候让孩子去学习这些也是来弥补我们年轻时的遗憾,我们希望孩子能够继承我们的朴实踏实的性格,但是也在冥冥之中希望他们能够更加出人头地,有自己的一片天,看着孩子的成长轨迹,有时候就会联想起自己多少年以前的样子,孩子不光继承了我们 的一些长相和性格特征还需要继承我们精神孜孜不倦的追求。 让时间说话 我们曾经在年轻的时候许下各种愿望,在各种场合中做下一些承诺,这些都需要时间来证明,我们所说的一句话一次承诺可能就是一个接口,可能日后的实现就是一个借口,或者付出了百倍的努力付诸实践。让时间来沉淀这些想法,来验证我们对于自己的言行。这也可以理解为实现吧。

相关文章:

  • 关于Oracle的技术问答 (r4笔记第85天)
  • 【非原创】完全用Linux工作(下)(r4笔记第86天)
  • 【非原创】完全用Linux工作(上)(r4笔记第86天)
  • 一条delete语句的调优(r4笔记第86天)
  • 【非本人原创】突然35岁:捡点我的职业生涯(下)(r4笔记第87天)
  • 【非本人原创】突然35岁:捡点我的职业生涯(上)(r4笔记第87天)
  • delete相关的pl/sql调优(r4笔记第87天)
  • 【非原创】这一生至少当一次傻瓜(r4笔记第88天)
  • 海量数据迁移之数据加载流程(r4笔记第88天)
  • 设计模式之工厂方法(r4笔记第89天)
  • database replay基础学习(r4笔记第90天)
  • 结合EM快速解决复杂的配置问题(r4笔记第91天)
  • 世界级Oracle专家Jonathan Lewis:我很为DBA们的未来担(r4笔记第92天)
  • 基于dba_hist_sqlstat查看sql语句的性能历史(r4笔记第92天)
  • 美国版的愚公-24年造山(r4笔记第93天)
  • [NodeJS] 关于Buffer
  • 【前端学习】-粗谈选择器
  • 2017届校招提前批面试回顾
  • canvas绘制圆角头像
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Lsb图片隐写
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Promise初体验
  • REST架构的思考
  • Spring核心 Bean的高级装配
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 经典排序算法及其 Java 实现
  • 类orAPI - 收藏集 - 掘金
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 一个JAVA程序员成长之路分享
  • 用Python写一份独特的元宵节祝福
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • (02)Hive SQL编译成MapReduce任务的过程
  • (3)nginx 配置(nginx.conf)
  • (C++17) optional的使用
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (ros//EnvironmentVariables)ros环境变量
  • (windows2012共享文件夹和防火墙设置
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • .net 发送邮件
  • .Net 垃圾回收机制原理(二)
  • .NET导入Excel数据
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [100天算法】-二叉树剪枝(day 48)
  • [C++]打开新世界的大门之C++入门
  • [Docker]十.Docker Swarm讲解
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误
  • [IE技巧] IE 中打开Office文件的设置