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

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

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2015-03-23

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

为什么零基础自学编程者,大多半途而废?(知乎)

我认为,可以分为两种。 第一种人,他们盲目追随潮流、追求新鲜事物,缺乏主见,没有毅力。 他们认为编程是一件轻松愉快且高贵冷艳的事。 他们开始学编程。 一段时间...

52380
来自专栏java一日一条

不拼颜值的编程世界你靠什么上位?

随着功能需求的逐步升级,编程语言的更新换代也变得越来越频繁,近年来编程语言的种类更是已经突破了600大关。在前浪不断被拍在沙滩上的编程语言世界里,斑斑却发现每一...

8820
来自专栏程序员互动联盟

作为大三的学生,需要为找工作做点什么准备?

疑惑一 数据结构很难嘛? 很多小伙伴在微信后台问,数据结构为啥学起来这么难,数据结构其实就是在c语言的基础上对数据进行抽象的处理,其实就是在基础语言的基础上进一...

34680
来自专栏大数据文摘

算法帝国里的牛人们:布尔

18750
来自专栏Golang语言社区

爬虫带你了解一下Golang的市场行情

项目地址:https://github.com/go-crawler/lagou_jobs

33940
来自专栏ACM算法日常

如何应对“智力型”的算法面试题?

“给你a、b两个文件,他们各存放50亿条URL,其中每条URL各占用64字节,内存限制是4G,请你编写代码找出a、b文件中相同的URL”。这是某家大公司在201...

28020
来自专栏java一日一条

不拼颜值的编程世界你靠什么上位?

随着功能需求的逐步升级,编程语言的更新换代也变得越来越频繁,近年来编程语言的种类更是已经突破了600大关。在前浪不断被拍在沙滩上的编程语言世界里,斑斑却发现每一...

9010
来自专栏Albert陈凯

2018-11-20 老码农教你在 StackOverflow 上谈笑风生

作为一个高大上的码农,你肯定用到过 StackOverflow,必须的。会有人否定这个断言么?那他恐怕不是真正的码农,或者说还没入门。StackOverflow...

64920
来自专栏BestSDK

Square开放SDK:支持APP,用手机刷卡功能

美国移动支付公司Square宣布开放手机刷卡器SDK,这是Square首次向开发商开放其付款处理工具。Square新款软件工具包允许第三方APP接入其手机刷卡器...

16320
来自专栏工科狗和生物喵

【计算机本科补全计划】构建之法读书笔记

正文之前 首先,说句实话:真的写得好,让我情不自禁就给我的学长推荐了,读完绪论我就有预感,我会放下我手头读的如痴如醉的《C++ Primer》,转而把这本构建之...

372100

扫码关注云+社区

领取腾讯云代金券