我们都知道,uml是一种统一建模语言,它的结构很简单,现在我们就把它的四种关系说一说。所谓关系,就是事物间的关系。
一:依赖关系(dependency)
对于俩个对象x和y,如果对象x发生了变化,可能会引起对另一个对象y发生变化,则称y依赖于x,在uml中,依赖关系用一条带有箭头的虚线表示。箭头指向被依赖方。
举一个例子吧,客户以一种方式依赖于提供者。在实际的建模中,类元之间的依赖关系表示某一类元以某种方式依赖于其他类元。从语义上来理解,关联、实现和泛化关系都是依赖关系,但是因为他们有更加特别的语义,就被分离出来啦。我们知道当遥控器改变的时候,电视频道也会随之而发生变化,如下图所示:
4种基本的依赖关系类型分别是:使用依赖、抽象依赖、授权依赖、绑定依赖,他们各有特点,我们以客户使用者和使用提供者来说,其中使用依赖就是就是客户使用提供者提供的服务以实现他的行为。抽象依赖是依赖于不同层次上的事物,授权依赖就是提供者可以规定一定的客户的权利来对提供者控制和限制。绑定依赖就是绑定模版以创建新的模型元
二:泛化关系(generalization)
首先我们知道泛化就是一般元素和特殊元素之间的关系,也就是父类和子类的关系,子类继承父类的属性和方法,当然子类在继承的基础上还会有新的属性和方法。泛化关系描述了类之间的“is a kind of”的关系。
在图形上,泛化用从子类指向父类的空心三角形箭头来表示,多个泛化关系可以用箭头线来表示树形来表示,如图所示:
三:实现关系(realization)
实现关系将一种模型元素和另一种模型元素连接起来,其中接口只是行为的说明而不是结构或者实现。也即是不继承结构但是继承行为。一个接口可以被多个类或者组件实现,一个类或组件也可以有多个接口。
可以在两种情况下实现该关系,第一是在接口和实现该接口的类间,第二是在用例以及实现该用类的协作间。他用一个带空心三角形的虚线箭头来表示,箭头方向指向接口。
例如,打字员和计算机键盘的关系,即使计算机键盘帮助打字员实现了他的工作的功能,所以,可以用下面的图表示:
还有一个很省略的画法,也就是这条实现的线可以用的带圆圈的线来表示。
四:关联关系(association)
关联关系描述了一组具有共同的结构特征和行为特征等的链接,他是一种结构关系,假如俩个事物之间存在链接,则事物的类间存在关联关系。如学院、学生、大学存在链接关系,则他们之间可以建立关联关系。