由include、extend的关系联想到组合、聚合的关系

今天晚上,师傅带病给我指导我画的UML的9种图,心里很是感激,师傅真是太负责了。

和师傅这么一交流,我发现自己画的图,哎,简直自己都看不过去了。伤心归伤心,不过收获还是很大的,比如我发现include、extend之间的关系和组合、聚合之间的关系很相似。

include关系强调拥有,比如笔记本电脑,它可以include出显示器、主板、硬盘、内存。一般情况下,是笔记本电脑就必须存在这些设备。它的线形是发散的,由一个点向四面八方扩展。

extend关系强调延伸,比如笔记本电脑,它可以延伸出鼠标、散热器、打印机、投影仪。这些设备和笔记本电脑都可以独立存在,但它们可以帮助笔记本电脑实现更多的功能。它的线形是聚合的,由四面八方汇聚到一点。

看到这两,我突然想到组合、聚合的关系不也是这样吗?

大雁和翅膀之间是组合关系,因为大雁拥有翅膀,类似于include的拥有关系。大雁和雁群是聚合关系,因为它们可以独立存在,但大雁又是雁群的一部分。

编织知识网,米老师经常教我们的,今天终于用到了。

趁着今天的博客,顺便反思下自己以前的博客。经师傅今晚这么一点,我发现自己原来写的博客好比小学生写笔记,都是死知识,没有自己的思想,读者读起来感觉很晦涩。所以,以后写博客要多加上些自己的理解,让文章有血有肉。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...