您的位置:首页 > 其它

UML类图

2018-03-01 11:56 134 查看
类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。
类图的3个基本组件:类名、属性、方法。
类的几种关系:泛化(继承关系)、实现关系、依赖、关联(一般关联、聚合关系、组合关系)
类图中几种符号:+:public、-:private、#:protected
类的属性的完整表示:可见性  名称 :类型[ = 缺省值](中括号中为可选)。
类的方法完整表示:可见性 名称(参数列表)[ =  :返回类型]
了解类图关键是理清类和类之间的关系是重点,下边详细介绍下类和类之间的关系。
1、继承关系:在UML类图中用带空心三角形箭头的直线表示,箭头由子类指向父类,表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。


 2、实现关系:在UML类图中用带空心三角形的虚线表示,箭头指向接口。在接口中通常没有属性,而且所有的操作都是抽象的,只有操作的声明没有操作的实现。接口实现让一个类可以实现多个接口,也可以让一个接口被多个类实现



[cc lang="javascript"]
public interface interface_A
{
public void add()
}
public class class_A implements  interface_A
{
public void add(){
}
}
[/cc]
3、依赖关系:对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.



4000
public class Driver
{
public void drive(Car car)
{
car.move();
}}
public class Car
{
public void move()
{        }}Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类
4、一般关联(单向关联、双向关联、自关联)
(1)单向关联:


public class Customer {
private Address address;
}public class Address {
}
 
在UML类图中单向关联用一个带箭头的直线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。
(2)双向关联:



 public class Customer
{
private Product[] products;}
public class Product
{
private Customer customer;}
 
双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线表示。上图中在Customer类中维护一个Product[]数组,表示一个顾客购买了那些产品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。
(3)自关联:


public class Node {
private Node subNode;
}
自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。
5、聚合关系:



 public class Car
{
private Engine engine;
public Car(Engine engine)
{
this.engine = engine;
}public void setEngine(Engine engine)
{
this.engine = engine;
}}
public class Engine
{}
UML中聚合关系用带空心菱形和箭头的直线表示。聚合关系强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在。比如上图中汽车包含了发动机,而发动机脱离了汽车也能单独存在。
6、组合关系:


public class Head
{
private Mouth mouth;
public Head()
{
mouth = new Mouth();
}}public class Mouth
{}
 
组合关系与聚合关系见得最大不同在于:这里的“部分”脱离了“整体”便不复存在。显然,嘴是头的一部分且不能脱离了头而单独存在。在UML类图中,组合关系用一个带实心菱形和箭头的直线表示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uml类图