UML的类图关系(c#实例).doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UML的类图关系(c#实例) ??? UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。 ???? /// summary ??? /// UML类图关系:关联 ??? /// /summary ??? #region 双向关联:双方都拥有对方的一个指针,当然也可以是引用或者是值。C1-C2 ??? ??? class C1 ??? { ??????? public C2 theC2 = new C2(); ??? }; ??? class C2 ??? { ??????? public C1 theC1 = new C1(); ??? }; ??? #endregion ??? #region 单向关联:C3有C4的指针,而C4对C3一无所知。C3-C4 ??? ??? class C3 ??? { ??????? public C4 theC4 = new C4(); ??? }; ??? class C4 ??? { ??? }; ??? #endregion ??? #region 自身关联(反身关联):自己引用自己,带着一个自己的引用。 ??? ??? class C14 ??? { ??????? public C14 theC14 = new C14(); ??? }; ??? #endregion ??? /// summary ??? /// UML类图关系:聚合/组合 ??? /// 当类之间有整体-部分关系的时候,我们就可以使用组合或者聚合。 ??? /// /summary ??? //聚合:表示C9聚合C10,但是C10可以离开C9而独立存在 ??? //(独立存在的意思是在某个应用的问题域中这个类的存在有意义)。 ??? ??? class C9 ??? { ??????? public C10 theC10 = new C10(); ??? }; ??? class C10 ??? { ??? }; ??? //组合(也有人称为包容):一般是实心菱形加实线箭头表示, ??? //表示的是C8被C7包容,而且C8不能离开C7而独立存在。 ??? //但这是视问题域而定的,例如在关心汽车的领域里, ??? //轮胎是一定要组合在汽车类中的,因为它离开了汽车就没有意义了。 ??? //但是在卖轮胎的店铺业务里,就算轮胎离开了汽车,它也是有意义的,这就可以用聚合了。 ??? ??? class C7 ??? { ??????? public C8 theC8 = new C8(); ??? }; ??? class C8 ??? { ??? }; ??? //可以看到,代码和聚合是一样的。具体如何区别,可能就只能用语义来区分了。 ??? /// summary ??? /// UML类图关系:依赖 ??? /// /summary ??? //指C5可能要用到C6的一些方法,也可以这样说, ??? //要完成C5里的所有功能,一定要有C6的方法协助才行。 ??? //在形式上一般是C5中的某个方法把C6的对象作为参数使用(假设C5依赖于C6)。 ??? //注意,要避免双向依赖。一般来说,不应该存在双向依赖。 ??? ???? using namespaceOfC6 ??? class C5 ??? { ??????? void Func(C6 c6) ??????? { } ??? }; ??? /// summary ??? /// UML类图关系:泛化(继承) ??? /// /summary ???? ??? ??? class C11 ??? { ??? } ??? class C12 : C11 ??? { ??? } ?????重复度 这里再说一下重复度,其实看完了上面的描述之后,我们应该清楚了各个关系间的关系以及具体对应到代码是怎么样的,所谓的重复度,也只不过是上面的扩展,例如A和B有着“1对多”的重复度,那在A中就有一个列表,保存着B对象的N个引用,就是这样而已。 ??? 依赖和聚合\组合、关联等有什么不同呢? ??? 关联是类之间的一种关系,例如老师教学生,老公和老婆,水壶装水等就是一种关系。这种关系是非常明显的,在问题领域中通过分析直接就能得出。 ??? 依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是“uses”了那个类),就可以把这种关系看成是依赖,依赖也可说是一种偶然的关系,而不是必然的关系,就是“我在某个方法中偶然用到了它,但在现实中我和它并没多大关系”。例如我和锤子,我和锤子本来是没关系的,但在有一次要钉钉子的时候,我用到了它,这就是一种依赖,依赖锤子完成钉钉子这件事情。 ???

文档评论(0)

PPT精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档