UML图(三)类图
来源:互联网 发布:视觉传达设计软件 编辑:程序博客网 时间:2024/04/30 00:31
一、含义
类图是最重要的UML图,它的最基本的元素是类或接口,用于描述系统的结构化设计。。
类图由许多静态模型元素组成,显示了模型中存在的类、接口、类内部、类之间以及类与接口之间的关系等。
二、类的表示
如图,一个类由三部分组成:类名、方法和属性。
二、类的可见性
上图中的符号称为访问限制符:
+表示Public,该属性对所有类可见;
-表示Private,只对该类本身可见;
#表示Protected,对该类的子孙类可见;
~表示Package,只对同一包内声明的其他类可见;
在UML图中,这样表示:
Name可见性为Public;
Age可见性为Private;
Salary可见性为Protected。
三、类图的关系
类图中共包含如下几种关系:关联、泛化、依赖和实现四种关系。这也是本篇博客的重点。
如下,类图关系详解图:
普通关联包括三种元素:名称、角色和多重性。
名称用以描述该关系的性质;
角色是当一个类处于关联的某一端时,该类就在这一关系中扮演了特定的角色,角色名是靠近它的一端的类对另外端的类呈现的职责;
多重性是指一个关联的实例中有多少个相互连接的对象,大致分为如下几类:
例:如图学校和人的例子,关联名是教授和学生,如图:
该图表示学校可以有n个学生,也可以没学生;学生可以在多个学校学习,也可以不在学校学习。
单向关联,又叫导航关联,一个类和另一个类产生单一方向的联系;
双向关联,两个类之间互相作用和联系;
自身关联:指一个类和它自身产生了关联,如图:
一名雇员既可以成为一名技术工人,同时他还可以担任厨师,厨师和工人之间又有一种职责关系,即厨师必须为工人做饭。
另外,两个类之间还可以存在多种关联;一个类可以和多个类产生关联,这里不再详述。
聚合:聚合关系是一种整体---部分关系,可以用has a来说明,表示整体对象拥有部分对象。如瓶子拥有瓶盖,它们就是聚合关系,它的图符是一个空心菱形。如图:
组合:组合关系具有更强的拥有关系,强调整体与部分的生命和周期具有一致性,可以用contains a来表示,如果整体被销毁,部分也必然跟着被销毁。如树和数枝,它们就是组合关系,它的图符是一个实心菱形。
综上来看二者的区别就是:聚合没有明显的附属关系,组合具有附属和明显的生命约束关系。
依赖关系:含义同上篇讲的用例图的说明类似,这里所说的依赖关系也是一种使用关系,说明一个事物规格说明的变化可能影响到使用它的另一个事物,但反之未必。(不再详述)
泛化关系:含义同上篇讲的用例图的说明类似,这里所说的泛化关系也是一种继承,类1 is a kind of类2。
在这里需要强调的是,继承分为单根继承和多重继承。单根继承是指一个子类只有一个父类;那么显而易见多重继承就是一个字类有两个或以上的父类。
然而在C#、Java中我们不能使用多重继承,而是使用更简单的接口来实现多重继承的功能,这个在接下来的C#学习中再详述。
实现关系:实现关系是类元之间的语义关系,在该关系中,一个类元描述了另一个类元保证实现的契约。如类和接口,接口描述了类实现的契约,但不说明类到底怎么实现。
总结:类图包含的五大关系和类图中类的找法是初学者必须要详细掌握和深刻理解的。
类在机房收费系统中表现为人、界面、表,每种人、每个界面、每张表都是类。
类图中的关系就是依赖、泛化、实现、组合和聚合。
实现关系中类与接口的恩怨情仇,在今后的面向对象中将和大家一起进一步学习。
- UML图(三)类图
- UML(三)类图
- uml(三) 类图
- UML图(三)
- UML笔记(三)--类图
- 深入浅出UML类图(三)
- 深入浅出UML类图(三)
- 深入浅出UML类图(三)
- 深入浅出UML类图(三)
- 深入浅出UML类图(三)
- 深入浅出UML类图(三)
- 深入浅出UML类图(三)
- 深入浅出UML类图(三)
- UML(三)--行为图
- 深入浅出UML图(三)
- UML笔记三:UML基础与应用(类图)
- UML图详解(三)——类图
- UML学习笔记(三)--类图
- Android的进程和线程机制(一)——进程
- 简述UML之状态图
- Oracle 表空间
- UML的初步了解
- Ubuntu下锐捷linux客户端开机自启动的方法
- UML图(三)类图
- projecteuler No.121 Disc game prize fund
- .NET中反射机制的使用与分析
- 如何获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)
- 记录,方便以后查询rtl8881a,ecos,cmj-1
- 2014-02-17
- IOS, xib和storyboard的混用
- android异常:The constructor Data() is undefined
- word模板文件损坏批处理