﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-坚持·梦想-随笔分类-UML</title><link>http://www.blogjava.net/wxb1988/category/54879.html</link><description>知人者智，自知者明。胜人者有力，自胜者强。</description><language>zh-cn</language><lastBuildDate>Mon, 20 Jul 2015 08:56:44 GMT</lastBuildDate><pubDate>Mon, 20 Jul 2015 08:56:44 GMT</pubDate><ttl>60</ttl><item><title>UML类图几种关系的总结</title><link>http://www.blogjava.net/wxb1988/archive/2015/07/19/426312.html</link><dc:creator>wxb1988</dc:creator><author>wxb1988</author><pubDate>Sun, 19 Jul 2015 14:39:00 GMT</pubDate><guid>http://www.blogjava.net/wxb1988/archive/2015/07/19/426312.html</guid><wfw:comment>http://www.blogjava.net/wxb1988/comments/426312.html</wfw:comment><comments>http://www.blogjava.net/wxb1988/archive/2015/07/19/426312.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wxb1988/comments/commentRss/426312.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wxb1988/services/trackbacks/426312.html</trackback:ping><description><![CDATA[<p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;在UML类图中，常见的有以下几种关系:&nbsp;泛化（Generalization）,&nbsp;&nbsp;实现（Realization），关联（Association)，聚合（Aggregation），组合(Composition)，依赖(Dependency)</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong style="padding: 0px; margin: 0px;">1.&nbsp;</strong><strong style="padding: 0px; margin: 0px;">泛化（</strong><strong style="padding: 0px; margin: 0px;">Generalization</strong><strong style="padding: 0px; margin: 0px;">）</strong></p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【泛化关系】：是一种继承关系，表示一般与特殊的关系，它指定了子类如何特化父类的所有特征和行为。例如：老虎是动物的一种，即有老虎的特性也有动物的共性。</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【箭头指向】：带三角箭头的实线，箭头指向父类</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; text-align: center; background-color: #fafafa;"><img alt="UML类图几种关系的总结" src="http://static.open-open.com/lib/uploadImg/20120201/20120201092740_578.gif" width="202" height="315" style="padding: 0px; margin: 0px; border: 0px;" />&nbsp;</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;"><strong style="padding: 0px; margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;</strong><strong style="padding: 0px; margin: 0px;">实现（</strong><strong style="padding: 0px; margin: 0px;">Realization</strong><strong style="padding: 0px; margin: 0px;">）</strong></p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【实现关系】：是一种类与接口的关系，表示类是接口所有特征和行为的实现.</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【箭头指向】：带三角箭头的虚线，箭头指向接口</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; text-align: center; background-color: #fafafa;"><img alt="UML类图几种关系的总结" src="http://static.open-open.com/lib/uploadImg/20120201/20120201092741_47.gif" width="204" height="284" style="padding: 0px; margin: 0px; border: 0px;" />&nbsp;</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;"><strong style="padding: 0px; margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.&nbsp;</strong><strong style="padding: 0px; margin: 0px;">关联（</strong><strong style="padding: 0px; margin: 0px;">Association)</strong></p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【关联关系】：是一种拥有的关系，它使一个类知道另一个类的属性和方法；如：老师与学生，丈夫与妻子关联可以是双向的，也可以是单向的。双向的关联可以有两个箭头或者没有箭头，单向的关联有一个箭头。</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【代码体现】：成员变量</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【箭头及指向】：带普通箭头的实心线，指向被拥有者</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; text-align: center; background-color: #fafafa;"><img alt="UML类图几种关系的总结" src="http://static.open-open.com/lib/uploadImg/20120201/20120201092741_41.gif" width="558" height="159" style="padding: 0px; margin: 0px; border: 0px;" />&nbsp;</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上图中，老师与学生是双向关联，老师有多名学生，学生也可能有多名老师。但学生与某课程间的关系为单向关联，一名学生可能要上多门课程，课程是个抽象的东西他不拥有学生。&nbsp;</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下图为自身关联：&nbsp;</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; text-align: center; background-color: #fafafa;"><img alt="UML类图几种关系的总结" src="http://static.open-open.com/lib/uploadImg/20120201/20120201092741_335.gif" width="233" height="180" style="padding: 0px; margin: 0px; border: 0px;" /></p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;"><strong style="padding: 0px; margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.&nbsp;</strong><strong style="padding: 0px; margin: 0px;">聚合（</strong><strong style="padding: 0px; margin: 0px;">Aggregation</strong><strong style="padding: 0px; margin: 0px;">）</strong></p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【聚合关系】：是整体与部分的关系，且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系，轮胎离开车仍然可以存在。</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;聚合关系是关联关系的一种，是强的关联关系；关联和聚合在语法上无法区分，必须考察具体的逻辑关系。</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【代码体现】：成员变量</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【箭头及指向】：带空心菱形的实心线，菱形指向整体</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; text-align: center; background-color: #fafafa;"><img alt="UML类图几种关系的总结" src="http://static.open-open.com/lib/uploadImg/20120201/20120201092741_681.gif" width="389" height="319" style="padding: 0px; margin: 0px; border: 0px;" />&nbsp;</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;"><strong style="padding: 0px; margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.</strong><strong style="padding: 0px; margin: 0px;">&nbsp;</strong><strong style="padding: 0px; margin: 0px;">组合</strong><strong style="padding: 0px; margin: 0px;">(Composition)</strong></p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【组合关系】：是整体与部分的关系，但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系，没有公司就不存在部门。</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;组合关系是关联关系的一种，是比聚合关系还要强的关系，它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">【代码体现】：成员变量</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">【箭头及指向】：带实心菱形的实线，菱形指向整体</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; text-align: center; background-color: #fafafa;"><img alt="UML类图几种关系的总结" src="http://static.open-open.com/lib/uploadImg/20120201/20120201092741_278.gif" width="218" height="299" style="padding: 0px; margin: 0px; border: 0px;" /></p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;"><strong style="padding: 0px; margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6.&nbsp;</strong><strong style="padding: 0px; margin: 0px;">依赖</strong><strong style="padding: 0px; margin: 0px;">(Dependency)</strong></p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【依赖关系】：是一种使用的关系，即一个类的实现需要另一个类的协助，所以要尽量不使用双向的互相依赖.</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【代码表现】：局部变量、方法的参数或者对静态方法的调用</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【箭头及指向】：带箭头的虚线，指向被使用者</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; text-align: center; background-color: #fafafa;"><img alt="UML类图几种关系的总结" src="http://static.open-open.com/lib/uploadImg/20120201/20120201092741_129.gif" width="196" height="265" style="padding: 0px; margin: 0px; border: 0px;" />&nbsp;</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;各种关系的强弱顺序：</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;"><strong style="padding: 0px; margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;泛化</strong><strong style="padding: 0px; margin: 0px;">&nbsp;=&nbsp;</strong><strong style="padding: 0px; margin: 0px;">实现</strong><strong style="padding: 0px; margin: 0px;">&nbsp;&gt;&nbsp;</strong><strong style="padding: 0px; margin: 0px;">组合</strong><strong style="padding: 0px; margin: 0px;">&nbsp;&gt;&nbsp;</strong><strong style="padding: 0px; margin: 0px;">聚合</strong><strong style="padding: 0px; margin: 0px;">&nbsp;&gt;&nbsp;</strong><strong style="padding: 0px; margin: 0px;">关联</strong><strong style="padding: 0px; margin: 0px;">&nbsp;&gt;&nbsp;</strong><strong style="padding: 0px; margin: 0px;">依赖</strong>&nbsp;</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: #fafafa;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面这张UML图，比较形象地展示了各种类图关系：</p><p style="padding: 0px; margin: 10px 0px; line-height: 25.2000007629395px; color: #404040; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; text-align: center; background-color: #fafafa;"><img alt="UML类图几种关系的总结" src="http://static.open-open.com/lib/uploadImg/20120201/20120201092742_482.png" style="padding: 0px; margin: 0px; border: 0px; width: 678px; height: 551px;" /></p><img src ="http://www.blogjava.net/wxb1988/aggbug/426312.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wxb1988/" target="_blank">wxb1988</a> 2015-07-19 22:39 <a href="http://www.blogjava.net/wxb1988/archive/2015/07/19/426312.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>