﻿<?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>C++博客-芳草春晖-文章分类-游戏构架</title><link>http://www.cppblog.com/CrazyDev/category/13605.html</link><description>偶尔记录自己思绪的地方...</description><language>zh-cn</language><lastBuildDate>Fri, 23 Apr 2010 00:49:35 GMT</lastBuildDate><pubDate>Fri, 23 Apr 2010 00:49:35 GMT</pubDate><ttl>60</ttl><item><title>UML中一些符号的意义, 写出来加强记忆（转）</title><link>http://www.cppblog.com/CrazyDev/articles/113276.html</link><dc:creator>CrazyDev</dc:creator><author>CrazyDev</author><pubDate>Thu, 22 Apr 2010 13:41:00 GMT</pubDate><guid>http://www.cppblog.com/CrazyDev/articles/113276.html</guid><wfw:comment>http://www.cppblog.com/CrazyDev/comments/113276.html</wfw:comment><comments>http://www.cppblog.com/CrazyDev/articles/113276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/CrazyDev/comments/commentRss/113276.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/CrazyDev/services/trackbacks/113276.html</trackback:ping><description><![CDATA[<div class=textbox-fontsize><a title=http://www.azure.com.cn/ href="http://www.azure.com.cn/" target=_blank><u><font color=#0000ff>http://www.azure.com.cn/</font></u></a><br><br>图一:<br><br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_211918_1121523.jpg" target=_blank><img alt=uploads/200706/04_211918_1121523.jpg src="http://www.azure.com.cn/uploads/200706/04_211918_1121523.jpg"></a></div>
<br><br>此实线箭头表示, <span style="COLOR: red">继承</span>, 从一个非接口类的继承.<br><br>图二:<br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_212112_1121525gl.jpg" target=_blank><img alt=uploads/200706/04_212112_1121525gl.jpg src="http://www.azure.com.cn/uploads/200706/04_212112_1121525gl.jpg"></a></div>
<br><br>那条连线表示<span style="COLOR: red">双向关联</span>:<br>看左边, Flight扮演assignedFights角色, 有0到1个Plane跟他关联(一个航班要么取消了没有飞机,要么只能对应一架飞机)<br>看右边, Plane扮演着assignedPlane角色, 有0到多个Flight跟他关联(一个飞机可以参与多个航班, 也可以停在仓库里面烂掉)<br><br>图三:<br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_213002_1121526dxgl.jpg" target=_blank><img alt=uploads/200706/04_213002_1121526dxgl.jpg src="http://www.azure.com.cn/uploads/200706/04_213002_1121526dxgl.jpg"></a></div>
<br><br>那条连线表示<span style="COLOR: red">单向关联</span>:<br>基本的意义跟上面的是一样的, 唯一不同的是, 右边的类对左边的类是一无所知的.<br><br>图四:<br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_213232_1121527rjb.jpg" target=_blank><img alt=uploads/200706/04_213232_1121527rjb.jpg src="http://www.azure.com.cn/uploads/200706/04_213232_1121527rjb.jpg"></a></div>
<br><br>那个大的包围的框叫<span style="COLOR: red">软件包</span>, 名字为Account, 就一些可以归类的类包装起来.<br><br>图五:<br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_213441_1121529xjc.gif" target=_blank><img alt=uploads/200706/04_213441_1121529xjc.gif src="http://www.azure.com.cn/uploads/200706/04_213441_1121529xjc.gif"></a></div>
<br><br>如此虚线的箭头表示实现一个<span style="COLOR: red">接口</span>.<br><br>图六:<br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_213626_11215210gll.jpg" target=_blank><img alt=uploads/200706/04_213626_11215210gll.jpg src="http://www.azure.com.cn/uploads/200706/04_213626_11215210gll.jpg"></a></div>
<br><br>水平的连线还是表示上面所说的关联, 但从关联连线中引伸出来的虚线, 这意味当Flight类的一个实例关联到 FrequentFlyer 类的一个实例时，<span style="COLOR: red">将会产生 MileageCredit 类的一个实例</span>.<br><br>图七:<br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_213911_11215211jbjh.jpg" target=_blank><img alt=uploads/200706/04_213911_11215211jbjh.jpg src="http://www.azure.com.cn/uploads/200706/04_213911_11215211jbjh.jpg"></a></div>
<br><br>带菱形的箭头表示基本聚合, 由上图知道, Wheel类扮演wheels角色, 聚合4个到Car对象里面去,<br><span style="COLOR: red">空心的菱形表示Wheel对象并不随Car的创建而创建,销毁而销毁</span>.<br><br>图八:<br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_214248_11215212zhjh.jpg" target=_blank><img alt=uploads/200706/04_214248_11215212zhjh.jpg src="http://www.azure.com.cn/uploads/200706/04_214248_11215212zhjh.jpg"></a></div>
<br><br>意义和上面类似, 唯一不同的是, <span style="COLOR: red">实心菱形表示Department对象随Company对象的创建而创建,销毁而销毁</span>.<br><br>图九:<br>
<div style="OVERFLOW-X: auto; WIDTH: 100%"><a href="http://www.azure.com.cn/uploads/200706/04_214435_11215213fs.gif" target=_blank><img alt=uploads/200706/04_214435_11215213fs.gif src="http://www.azure.com.cn/uploads/200706/04_214435_11215213fs.gif"></a></div>
<br><br>表示<span style="COLOR: red">反射关联</span>, 显示一个Employee类如何通过manager / manages角色与它本身相关。当一个类关联到它本身时，这并不意味着类的实例与它本身相关，而是类的一个实例与类的另一个实例相关。</div>
<img src ="http://www.cppblog.com/CrazyDev/aggbug/113276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/CrazyDev/" target="_blank">CrazyDev</a> 2010-04-22 21:41 <a href="http://www.cppblog.com/CrazyDev/articles/113276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>