类之间的四种关系

来源:互联网 发布:index.php 编辑:程序博客网 时间:2024/05/21 18:40
类之间关系主要有以下四种:泛化、实现、关联、依赖。
泛化关系(Generalization)
指一般描述和具体描述之间的分类关系,具体描述建立在一般描述之上,并对其进行扩展,具体描述与一般描述完全一致,并包含附加的扩展。泛化是IS-A的关系,泛化和实现关系都可以将一般描述与具体描述联系起来。
泛化的用途:可替换性原则(里氏代换);继承。
在程序中以继承父类,或者继承接口来表示。



实现关系(realization)
实现关系是规格说明和其实现之间的关系,它将一种模型元素与另一种模型元素连接起来,比如类和接口。
在程序中以实现接口来表示。


关联关系(Association)
关联关系是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。也就是说,关联描述了系统中对象或实例之间的离散连接。
在程序中被关联的对象以实例变量的形式出现在关联的对象中。

关联又具体分以下几种:双向关联,单向关联,关联类,聚合关联,组合聚合,反射关联。
双向(标准)关联
关联是两个类间的联接。关联总是被假定是双向的;这意味着,两个类彼此知道它们间的联系,除非你限定一些其它类型的关联。



单向关联
在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。



关联类
在关联建模中,存在一些情况下,你需要包括其它类,因为它包含了关于关联的有价值的信息。对于这种情况,你会使用 关联类 来绑定你的基本关联。关联类和一般类一样表示。不同的是,主类和关联类之间用一条相交的点线连接。



聚合关联Aggregation
聚合关系表示整体和部分关系的关联,聚合关系描述了“has a”的关系。在中聚合关系用带空心的实线来表示,其中头部指向整体。



组合聚合Composition
组合关系是聚合关系中的一种特殊情况,是更强形式的聚合,又被称为强聚合。在组合中,成员对象的生命周期取决于聚合的生命周期,聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和析构。



反射关联
类使用反射关联与它本身相关联,当一个类关联到它本身时,这并不意味着类的实例与它本身相关,而是类的一个实例与类的另一个实例相关。



依赖关系(Dependency)
表示两个或多个模型元素之间语义上的关系。它表示了这样一种情形,对于一个元素(提供者)的某些改变可能会影响或提供消息给其他元素(客户),即客户以某种形式依赖于其他类元。根据这个定义,关联、实现和泛化都是依赖关系,但是它们有更特别的语义。在UML中,依赖用一个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分它的种类。
在程序中以局部变量、方法的参数等表示。



UML定义了4种基本依赖类型,分别是使用(Usage)依赖、抽象(Abstraction)依赖、授权(Permission)依赖和绑定(Binding)依赖。
使用依赖:通常表示客户使用提供者提供的服务以实现它的行为。声明使用一个模型元素需要用到已存在的另一个模型元素,这样才能正确实现使用者的功能。包括:调用,实例化,参数和发送。
抽象依赖:用来表示客户与提供者之间的关系,依赖于在不同抽象层次上的事物。
授权依赖:表示一个事物访问另一个事物的能力。提供者通过规定客户的权限,可以控制和限制对其内容访问的方法。
绑定依赖:绑定依赖是较高级的依赖类型,用于绑定模板以创建新的模型元素。


http://peterji.javaeye.com/blog/371560
原创粉丝点击