uml的类图关系(c#实例)

uml的类图关系(c#实例)

ID:14811610

大小:177.50 KB

页数:5页

时间:2018-07-30

uml的类图关系(c#实例)_第1页
uml的类图关系(c#实例)_第2页
uml的类图关系(c#实例)_第3页
uml的类图关系(c#实例)_第4页
uml的类图关系(c#实例)_第5页
资源描述:

《uml的类图关系(c#实例)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、UML的类图关系(c#实例)   UML的类图关系分为:关联、聚合/组合、依赖、泛化(继承)。    ///

   ///UML类图关系:关联   ///   #region双向关联:双方都拥有对方的一个指针,当然也可以是引用或者是值。C1-C2      classC1   {       publicC2theC2=newC2();   };   classC2   {       publicC1theC1=newC1();   };   #endregion   #re

2、gion单向关联:C3有C4的指针,而C4对C3一无所知。C3->C4      classC3   {       publicC4theC4=newC4();   };   classC4   {   };   #endregion   #region自身关联(反身关联):自己引用自己,带着一个自己的引用。      classC14   {       publicC14theC14=newC14();   };   #endregion   ///

   ///UML类图关系:聚合/组合 

3、  ///当类之间有整体-部分关系的时候,我们就可以使用组合或者聚合。   ///

   //聚合:表示C9聚合C10,但是C10可以离开C9而独立存在   //(独立存在的意思是在某个应用的问题域中这个类的存在有意义)。      classC9   {       publicC10theC10=newC10();   };   classC10   {   };   //组合(也有人称为包容):一般是实心菱形加实线箭头表示,   //表示的是C8被C7包容,而且C8不能离开C7而独立存在。

4、   //但这是视问题域而定的,例如在关心汽车的领域里,   //轮胎是一定要组合在汽车类中的,因为它离开了汽车就没有意义了。   //但是在卖轮胎的店铺业务里,就算轮胎离开了汽车,它也是有意义的,这就可以用聚合了。      classC7   {       publicC8theC8=newC8();   };   classC8   {   };   //可以看到,代码和聚合是一样的。具体如何区别,可能就只能用语义来区分了。   ///

   ///UML类图关系:依赖   ///

5、mmary>   //指C5可能要用到C6的一些方法,也可以这样说,   //要完成C5里的所有功能,一定要有C6的方法协助才行。   //在形式上一般是C5中的某个方法把C6的对象作为参数使用(假设C5依赖于C6)。   //注意,要避免双向依赖。一般来说,不应该存在双向依赖。       usingnamespaceOfC6   classC5   {       voidFunc(C6c6)       {}   };   ///

   ///UML类图关系:泛化(继承)   ///

6、mmary>          classC11   {   }   classC12:C11   {   }     重复度这里再说一下重复度,其实看完了上面的描述之后,我们应该清楚了各个关系间的关系以及具体对应到代码是怎么样的,所谓的重复度,也只不过是上面的扩展,例如A和B有着“1对多”的重复度,那在A中就有一个列表,保存着B对象的N个引用,就是这样而已。   依赖和聚合组合、关联等有什么不同呢?   关联是类之间的一种关系,例如老师教学生,老公和老婆,水壶装水等就是一种关系。这种关系是非常明显的,在问题领

7、域中通过分析直接就能得出。   依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖,依赖也可说是一种偶然的关系,而不是必然的关系,就是“我在某个方法中偶然用到了它,但在现实中我和它并没多大关系”。例如我和锤子,我和锤子本来是没关系的,但在有一次要钉钉子的时候,我用到了它,这就是一种依赖,依赖锤子完成钉钉子这件事情。   组合是一种整体-部分的关系,在问题域中这种关系很明显,直接分析就可以得出的。例如轮胎是车的一部分,树叶是树的

8、一部分,手脚是身体的一部分这种的关系,非常明显的整体-部分关系。   上述的几种关系(关联、聚合/组合、依赖)在代码中可能以指针、引用、值等的方式在另一个类中出现,不拘于形式,但在逻辑上他们就有以上的区别。    这里还要说明一下,所谓的这些关系只是在某个问题域才有效,离开了这个问题域,可能这些关系就不成立了,例如可能在某个问题域中,我是一个木匠,需要拿着锤子去干活,可能

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。