uml类图大全

上传人:xzh****18 文档编号:46589203 上传时间:2018-06-27 格式:PDF 页数:9 大小:760.99KB
返回 下载 相关 举报
uml类图大全_第1页
第1页 / 共9页
uml类图大全_第2页
第2页 / 共9页
uml类图大全_第3页
第3页 / 共9页
uml类图大全_第4页
第4页 / 共9页
uml类图大全_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《uml类图大全》由会员分享,可在线阅读,更多相关《uml类图大全(9页珍藏版)》请在金锄头文库上搜索。

1、乐哈哈旅游视频网乐哈哈旅游视频网: 博客园 首页 社区 新随笔 联系 订阅 管理 随笔-190 评论-113 文章-1 trackbacks-3 UML类图关系大全类图关系大全 1、关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对 于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系 在设计的时候比较少用到,关联一般都是有向的。 使用ROSE 生成的代码是这样的: c

2、lass C1 . public: C2* theC2; ; class C2 . public: C1* theC1; ; 双向关联在代码的表现为双方都拥有对方的一个指针,当然也可以是引用或者是值。 单向关联: C3-C4:表示相识关系,指C3知道C4,C3可以调用C4的公共属性和方法。没有生命期的 依赖。一般是表示为一种引用。 生成代码如下: class C3 . public: C4* theC4; ; class C4 . ; 单向关联的代码就表现为C3有C4的指针,而C4对C3一无所知。 大智若愚 大智若愚 弱智da愚 昵称:riky 园龄:5年2个月 粉丝:5 关注:0 +加关注

3、 我的随笔 我的评论 我的参与 最新评论 我的标签 1. 右键cmdshell 2. DBLINK使用实战 3. oracle 日期相关的东东和几个应 用的例子 4. vnc.conf 5. 1521 error1 6. 多项目同步进行“交叉编译” 7. HIBERNATE 多表查询的解决方案 8. 动态添加SWAP分区 9. 中文正则式 10. 消息处理2 InterNet Management(11) java/c+/vc/jsp/js/ajax/dom/html/d html.(21) My Special Mood In Xidian(9) Search Engine(82) stoc

4、k-fund(3) TRUMP SPOKEN ENGLISH ; 就是在自己的内部有着一个自身的引用。 2、聚合/组合 当类之间有整体-部分关系的时候,我们就可以使用组合或者聚合。 聚合:表示C9聚合C10,但是C10可以离开C9而独立存在(独立存在的意思是在某个应用的 问题域中这个类的存在有意义。这句话怎么解,请看下面组合里的解释)。 代码如下: class C9 . public: C10 theC10; ; class C10 . ; 组合(也有人称为包容):一般是实心菱形加实线箭头表示,如上图所示,表示的是C8被C7 包容,而且C8不能离开C7而独立存在。但这是视问题域而定的,例如在关

5、心汽车的领域里, 轮胎是一定要组合在汽车类中的,因为它离开了汽车就没有意义了。但是在卖轮胎的店铺业 务里,就算轮胎离开了汽车,它也是有意义的,这就可以用聚合了。在敏捷开发中还说到,A组合B,则A需要知道B的生存周期,即可能A负责生成或者释放B,或者A通过某种途径知道B的生成和释放。 他们的代码如下: class C7 . public: C8 theC8; ; class C8 . ; 可以看到,代码和聚合是一样的。具体如何区别,可能就只能用语义来区分了。 3、依赖 2009年7月 (1) 2009年6月 (2) 2009年3月 (3) 2009年2月 (2) 2009年1月 (5) 2008

6、年12月 (2) 2008年10月 (13) 2008年9月 (8) 2008年8月 (2) 2008年7月 (2) 2008年2月 (9) 2007年8月 (5) 2007年7月 (1) 2007年6月 (4) 2007年5月 (25) 2007年4月 (17) 2007年3月 (16) 2007年2月 (1) 2007年1月 (16) 2006年12月 (10) 2006年11月 (24) 2006年10月 (3) 2006年9月 (8) 2006年8月 (1) AJAX,WebGPS Search Engine reletive my faverate http:/ http:/ htt

7、p:/ http:/ http:/ h/3852.htm http:/ perl SPserver http:/ 编码相关 几片好文章! 汉字编码查询 汉字编码查询 汉字编码查询2 汉字编码查询 宙环科技实验室 宙环科技实验室、驱动、编码 1. 右键cmdshell 2. DBLINK使用实战 3. oracle 日期相关的东东和几个应用的例子 4. vnc.conf 5. 1521 error1 6. 多项目同步进行“交叉编译” 7. HIBERNATE 多表查询的解决方文章分类文章分类相册相册my faverate最新随笔最新随笔页码,2/9(W)w2011/11/2http:/ 指C5可

8、能要用到C6的一些方法,也可以这样说,要完成C5里的所有功能,一定要有C6的方法协助才行。C5依赖于C6的定义,一般是在C5类的头文件中包含了C6的头文件。ROSE对 依赖关系不产生属性。 注意,要避免双向依赖。一般来说,不应该存在双向依赖。 ROSE生成的代码如下: / C5.h #include “C6.h“ class C5 . ; / C6.h #include “C5.h“ class C6 . ; 虽然ROSE不生成属性,但在形式上一般是A中的某个方法把B的对象作为参数使用(假设A依 赖于B)。如下: #include “B.h“ class A . void Func(B 那依赖

9、和聚合组合、关联等有什么不同呢? 关联是类之间的一种关系,例如老师教学生,老公和老婆,水壶装水等就是一种关系。这种关系是非常明显的,在问题领域中通过分析直接就能得出。 依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖,依赖也可说是一种偶然的关 系,而不是必然的关系,就是“我在某个方法中偶然用到了它,但在现实中我和它并没多大关系”。例如我和锤子,我和锤子本来是没关系的,但在有一次要钉钉子的时候,我用到了它,这就是一种依赖,依赖锤子完成钉钉子这件事情。 组合是一种整体-部分的关系,在问题域中这种关系很明显,直

10、接分析就可以得出的。例如轮胎是车的一部分,树叶是树的一部分,手脚是身体的一部分这种的关系,非常明显的整体-部 分关系。 上述的几种关系(关联、聚合/组合、依赖)在代码中可能以指针、引用、值等的方式在另一 个类中出现,不拘于形式,但在逻辑上他们就有以上的区别。 这里还要说明一下,所谓的这些关系只是在某个问题域才有效,离开了这个问题域,可能这些关系就不成立了,例如可能在某个问题域中,我是一个木匠,需要拿着锤子去干活,可能整个问题的描述就是我拿着锤子怎么钉桌子,钉椅子,钉柜子;既然整个问题就是描述这个,我和锤子就不仅是偶然的依赖关系了,我和锤子的关系变得非常的紧密,可能就上升为组合关系(让我突然想起

11、武侠小说的剑不离身,剑亡人亡.)。这个例子可能有点荒谬,但 也是为了说明一个道理,就是关系和类一样,它们都是在一个问题领域中才成立的,离开了这个问题域,他们可能就不复存在了。 4、泛化(继承) 7. HIBERNATE 多表查询的解决方案 8. 动态添加SWAP分区 9. 中文正则式 10. 消息处理2 1. Re:not human being 运行会出错啊? -jid_223 2. Re:UML类图关系大全 谢谢,学习了. -i晕呀 3. Re:TF-IDF讲义 来自GOOGLE黑板报 写的太好了,特别是在“原子能的应用”的搜索举例很有代表性,我在没有TF-IDF概念的情况下看了很长时间的

12、Lucene,就是不明白数学计算公式为什么是那个样子的,有一这些概念后,再看真是豁然开朗。 -jince007 4. Re:UML类图关系大全 学习。 -ice_lance 5. Re:UML类图关系大全 谢谢楼主,受益匪浅 -小犬007 6. Re:UML类图关系大全 写的很好 -janwin 7. Re:网页流媒体播放器 不错 -梅桦 8. Re:UML类图关系大全 我顶 -满晨晨 9. Re:UML类图关系大全 写的非常好,收益量多。 -自己就是宝藏 10. Re:UML类图关系大全 学习学习了。收藏它去。呵呵 -yeah!Bor_Bor 11. Re:UML类图关系大全 写得非常好,受

13、益良多! -davidear 12. Re:UML类图关系大全 写得非常好,受益良多! -davidear 13. Re:UML类图关系大全 学习了。 -CowboyRyan 14. Re:UML类图关系大全 不错 深入简出 -岳来 15. Re:UML类图关系大全 不错,不错,辛苦了!谢谢! -双 16. Re:解决“由于应用程序的配置 不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题” 我的qq 也不能用了。怎么解决啊 -百衣 17. Re:Unix网络API 淡淡的 你就是被发表出来的那玩意儿 -骂人专用 18. Re:这篇关于野指针的文章写得太有个性了!收藏了 Nice 最

14、新评论最新评论页码,3/9(W)w2011/11/2http:/ ROSE生成的代码很简单,如下: #include “C11.h“ class C12 : public C11 . ; 5、这里顺便提一下模板 上面的图对应的代码如下: template class C13 . ; 这里再说一下重复度,其实看完了上面的描述之后,我们应该清楚了各个关系间的关系以及具体对应到代码是怎么样的,所谓的重复度,也只不过是上面的扩展,例如A和B有着“1对 多”的重复度,那在A中就有一个列表,保存着B对象的N个引用,就是这样而已。 好了,到这里,已经把上面的类图关系说完了,希望你能有所收获了,我也费了不少工夫啊(画图、生成代码、截图、写到BLOG上,唉,一头大汗)。不过如果能让你彻底理解UML类图的这些关系,也值得了。:) + 在UML建模中,对类图上出现元素的理解是至关重要的。开发者必须理解如何将类图上出现的元素转换到Java中。以java

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号