UML类图符号各种关系说明以及举例..docxVIP

UML类图符号各种关系说明以及举例..docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UML类图符号各种关系说明以及举例.

UML类图符号 各种关系说明以及举例UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述。uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。泛化(Generalization):通常所说的继承(特殊个体 is kind of 一般个体)关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向一般个体。实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,B realize A。这个关系最常用于接口。uml中用空心箭头和虚线表示Realize关系,箭头指向定义约定的元素。关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。uml中用实线表示Association关系,箭头指向被依赖元素。聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体 has a 部分)的关系。uml中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。组合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。1.1.1依赖(Dependency):虚线箭头表示1、依赖关系也是类与类之间的联结2、依赖总是单向的。(#add 注意,要避免双向依赖。一般来说,不应该存在双向依赖。)3、依赖关系在 Java 或 C++ 语言中体现为局部变量、方法的参数或者对静态方法的调用。(软件开发中,往往会设计一些公用类,供别的类调用,如果这些公用类出问题了,那调用这些公用类的类都会因此而出问题。?两个元素之间的一种关系,其中一个元素(提供者)的变化将影响另一个元素(客体),或向它提供所需信息显示一个类引用另一个类)方法参数示例:public class Person{ void buy(Car car) { ... }}表示方法:虚线加箭头特点:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“相识关系”,只在某个特定地方(比如某个方法体内)才有关系。依赖关系可以分为以下四类:1)使用依赖(Usage)表示客户使用提供者提供的服务以实现它的行为,包括:使用use--声明使用一个类时需要用到已存在的另一个类。调用call--声明一个类调用其他类的操作的方法。参数parameter--声明一个操作和它的参数之间的关系。发送send--声明信号发送者和信号接收者之间的关系。实例化instantiate--声明用一个类的方法创建了另一个类的实例。2)抽象依赖(Abstraction)表示客户与提供者之间用不同的方法表现同一个概念,通常一个概念更抽象,一个概念更具体。包括:跟踪trace--声明不同模型中的元素之间存在一些连接但不如映射精确。精化refine--声明具有两个不同语义层次上的元素之间的映射。派生derive--声明一个实例可以从另一个实例导出。3)授权依赖(Permission)表达提供者为客户提供某种权限以访问其内容的情形。包括:访问access--允许一个包访问另一个包的内容。导入import--允许一个包访问另一个包的内容并为被访问包的组成部分增加别名。友元friend--允许一个元素访问另一个元素,不管被访问的元素是否具有可见性。4)绑定依赖(Binding)较高级的依赖类型,用于绑定模板以创建新的模型元素,包括:绑定bind--为模板参数指定值,以生成一个新的模型元素。1.1.2关联(Association):实线箭头表示1、关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法。2、关联可以是双向的,也可以是单向的(#add还有自身关联)。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。3、在 Java 或 c++ 中,关联关系是通过使用成员变量来实现的。public class 徒弟{ }public class 唐僧{ protected: list徒弟 tdlist;}?表示方法:实线箭头特征:表示类与类或类与接口之间

文档评论(0)

sa74g0hj + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档