简介与特点:
统一建模语言是用来设计软件蓝图的可视化建模语言,特点是简单、统一、图形化、能表达软件设计中的动态和静态信息。
UML从目标系统的不同角度出发, 定义有 用例图、 类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等9种图。
类、接口和类图:
类:
类是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,是面向对象设计OOP的基础,具有封装性、继承性和多态性等三大特性。
1、 类名
2、 属性
在UML中格式为: 【可见性】属性名:类型【=默认值】 例如 -name:String
可见性 包括 公有(+) 、私有(-)、受保护 (#)和 友元 (~)四种。
3、 操作
类的任何一个实例对象都可以使用的行为,是类的成员方法。
格式为 【可见性】名称(参数列表)【:返回类型】 例如 +display():void
UML类表示方法实例:
接口:
接口是一种特殊的类,它具有类的结构但不可被实例化,只可以被子类实现。它包含抽象操作,但不包含属性,它描述了类或组件对外的动作。
UML接口表示方法实例:
类图:
用来显示系统中的类、接口、协作以及它们之间的静态结构和关系的一种静态模型。用于描述软件系统的结果化设计,帮助人们简化对软件系统的理解。
类间关系:
类之间耦合度从弱到强排列,依次为 依赖关系 、关联关系、聚合关系、组合关系、泛化关系和实现关系。 其中实现以及泛化的耦合度相等,是最强的耦合度。
-
依赖关系:
使用关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。代码中某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。
依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖得类。
// Student 的 usePan 方法:
public void call(Pan pan) {
pan.draw();
}
-
关联关系:
关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系。
关联可以是双向的也可以是单向的。在UML中,双向的关联用待两个箭头或者没有箭头的实现来表示,单向的关联用带一个箭头的实现来表示,箭头从使用类指向被关联的类。也可以在关联线的两端标注角色名,代表两种不同的角色。
在代码中通常将一个类的对象作为另一个类的成员变量来实现关联关系。
-
聚合关系:
聚合关系是关联关系的一种,是强关联关系,是整体和部分之间的关系,是has-a的关系。
聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。
在UML类图中,聚合关系可以用带空心菱形的实现来表示,菱形指向整体。
-
组合关系:
组合关系也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是contains-a关系。
组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也就不存在,部分对象不能脱离整体对象而存在。
在UML类图中,组合关系用带实心菱形的实现来表示,菱形指向整体。
-
泛化关系:
泛化关系是对象之间耦合度最大的一种关系,表示特殊与一般的关系,是父类与子类的关系,是继承关系,是is-a的关系。
在 UML 类图中,泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。在代码实现时,使用面向对象的继承机制来实现泛化关系。
-
实现关系:
实现关系是接口与实现类之间的关系。 在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有抽象操作。