UML之类图

来源:互联网 发布:有人转让我的淘宝店铺 编辑:程序博客网 时间:2024/05/16 10:43

        类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性信息。

        类定义了一组有着状态和行为的对象。属性通常用没有身份的数据值表示,如数字和字符串。行为由操作来描述,方法是操作的实现。对象的生命期则由附加给类的状态机来描述。

那么接下来介绍一下类的具体构造,类的构造包括名称,属性,操作,如下图:

结构

 

1、 名称(Name):类的名称是每个类中所必有的构成元素。

2、 属性(Attributes)

(1) 可见性:类中属性的可见性主要包括公有(public)、私有(Private)和受保护(Protected)。在UML中,公有类型的用“+”表达,私有类型用“-”表达,而受保护类型则用“#”表达。UML的类中不存在默认的可见性,如果没有显示任何一种符号,就表示没有定义该属性的可见性。

(2) 属性名:按照UML的约定,单字属性名小写。如果属性名包含多个单词,这些单词要合并,且除了第一个单词外其余单词的首字母要大写。

(3) 类属性。属性也可以作为一个类属属性来定义,这就意味着此属性被该类的所有对象共享。在类图中,类属性带有一条下划线。

 

3、 操作(operations)。类的操作是对类的对象所能做的事务的抽象,相当于一个服务的实现。

       构造介绍完了,接着就向大家介绍一下类之间的关系吧。

      关系

关系包括着关联、依赖,泛化,实现

1.   关联

关联名

       1).名称(association name):用以描述该关系的性质

       2).角色(Role):当一个类处于关联的某一端时,该类就在这个关系中扮演了一个特定的角色,角色是关联中国靠近他的一端的类对另外端的类呈现的职责。

       3).多重性(Multiplicity):关联角色的多重性说明一个关联实例中有多少个相互连接的对象。

      

普通关联

  i.   单向关联

表示相识关系,指一个类知道另外一个类。代码中的体现是这个类就可以调用另 一个类的公共属性和方法。没有生命期的依赖。一般表示为一种引用。

  ii.  双向关联:指双方都知道对方的存在。代码中的体现:,都可以调用对方的公共属性和方法。(这种关 系在设计的时候比较少用到,关联一般都是有向的)

  iii.  两个类之间可以有多种关联

  iv.  一个类可以和多个类关联

 

自身关联

自己引用自己,带着一个自己的引用。代码中的体现:就是在自己的内部中有着一个自身的 引用。

整体和部分关联

(1).聚合:

空心菱形

(2).组合

实心菱形

   

             比较

必须现有主体才能有个体的是组合;主体不存在的情况下个体也可以存在的是聚合。但是这个要视问题域而 定;比如我们在一个主机类中,螺丝钉一定要组合在主机中,因为他离开了主机就没有意义了;但是在卖零部件的店铺业务中,就是螺丝钉离开了主机,它还是有意义的,这就是聚合了。所以还有一种说法:A组合 B,则A需要知道B的生存周期,即可能A负责生成或释放B,或者A通过某种途径知道B的生成和释放。

2.依赖

    

1.依赖是一种使用关系。用带箭头的虚线表示,其中箭头指向被依赖方。

2.依赖是个普遍存在的关系;初学者会大量使用依赖关系,但是这样表示是不严密,如果两个类之间还有结构化关 系就用关联关系;因为结构化关系中包含使用依赖关系

3. 就是在一个类中的某个方法中用到了另一个类

3.  泛化

也就是我们常说的继承关系(继承:一个类继承另外一个类的同一功能,并增加自己的新功 能);用实线空心的三角形来表示,其中空心三角形指向    

继承分类

1.单重继承:一个子类只能有一个父类

2.多重继承:一个子类可以有多个父类

父类,表示子类继承父类。

4.  实现关系

   实现是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。

泛化和实现关系的区别:

泛化关系是指同一语义层的元素连接起来,通常在同一模型内;实现关系将不同语义层内的元素连接起来,通常在不同模型内。

下面是一个车间工作流程的类图。他描述了车间各个模块之间的相互关系,包括关联,继承等。

 

 

0 0
原创粉丝点击