生活场景与UML
在详解UML前,我们先来对所生活的环境进行简单剖析下。
爱因斯坦曾说过,我们生活在四维空间(x y z在加一条时间t,就是四维了)内。也就是说我们所看到的事物是一个个立体状的模型。抽象地说我们的生活是由一幅幅图组成的,每一时刻对应着一幅图。形象的说我们的眼睛所看到的是生活中的一个个场景,一个个场景组成了一幅图,一幅幅图成为了世界的投影。这些场景是如何组成的呢?其实很简单,场景是由事物和关系组成,如:人、手机、书、电脑等,把这些事物连接到一起记录下来不就组成图了吗。在生活中我们常常用相机或摄影机将图记录下来,这就是我们所讨论的一张张图形成了我们的生活。
UML也是如此,在UML的世界里最主要的也是图,也就是我们生活中的场景,它由静态和动态场景两大类图组成。每个物体代表着一种模型元素,元素和它们之间的关系构成了图,一幅幅图又构成了UML中的视图,从不同角度描述了软件系统。
UML作为一种标准的建模语言,其实它所包含的知识点其实很少,至于UML的面向对象性质在此就不在多说了。我们可以把它总的概括为两大类:UML语法规则和UML图,其中的语法规则又可以细化分为:UML规则、UML公共机制,UML图划分为模型图和UML视图。
一、UML视图
UML视图是由图组成,使用若干视图从不同角度描述了一个软件系统,每一种视图说明了软件系统的一个侧面,将这些视图组合起来就构成了软件系统的完整模型。
二、UML构造块
模型元素由事物及事物间的关系组成。事物和他们之间的关系构成了模型图。这些构造块的概念是很容易理解的,下面主要说下构造块的基本用法。
1、事物
事物构造块是对模型中最具有代表性的成分的抽象
结构事物:UML中的名词,它是模型的静态部分,描述概念或物理元素。
行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。
分组事物:UML中的容器,用来组织模型,使模型更加的结构化。
注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。
2、关系
关系是指模型元素之间的关系,都是很容易理解的概念,不在多说。
关联:
提供了通信的路径,是所有关系中最通用、语义最弱的。在UML中使用一条实线来表示。主要分为:
单向关联:有箭头,箭头指向关联方。
双向关联:无箭头,双向关联。
两种比较特殊的关联:聚合和组合,它们可以用“has-a”和“contain-a”来进行理解。
依赖:
两个模型元素间的一种语义连接,一个模型元素依赖于另一个独立的模型元素,当独立的模型元素变化时,将影响依赖的模型元素。
泛化:
继承关系,描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。
实现:
用来规定接口和实现接口的类或组件之间的关系。
四种关系使用原则:
能用关联来表达的不要用依赖,能用聚合和组合表达的不要用普通关联。能用继承来描述的时候一定要用泛化关系,当描述是接口和类的实现关系一定要用实现关系,两个类之间如果有结构关系的时候一定用关联描述,除此外用采用依赖来描述。