深入了解Java设计模式之UML类图
目录
- 前言:什么是 UML
- 类图概念
- 类的表示方式
- 类与类之间关系的表示方式
- 关联关系
- 聚合关系
- 组合关系
- 依赖关系
- 继承关系
- 实现关系
前言:什么是 UML
定义:UML 即 Unified Modeling Language 统一建模语言,是用来设计软件的可视化建模语言。
特点:简单、统一、图形化、可以表达软件设计中的动态与静态信息。
分类:用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图 9 种。
类图概念
定义:类图是面向对象建模的主要组成部分,显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等,但javascript不显示暂时性的信息。
作用:系统分析和设计阶段的重要产物,系统编码和测试的重要模型。
类的表示方式
可见性符号
- + :表示 public
- - :表示 private
- # :表示 protected
- 什么都不写 表示 default
属性的表示方式:可见性 属性名 : 属性类型 [ = 默认值]
方法的表示方式:可见性 方法名(参数列表) [ : 返回值类型]
其中,[ ] 里的内容是可选的,可写可不写。
public class Employee { private String name; private int age; private String address; public void work(){ 编程 // DOSomething } }
类与类之间关系的表示方式
关联关系
关联关系是对象之间的一种引用关系,用于表示一个类对象对另一个类对象之间的联系。
关联关系也是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。
关联又分为单向关联、双向关联和自关联。
单向关联
单向关联使用带箭头的实直线表示,箭头指向被引用的对象。
public class Address { } public class Customer { private Address address; }
双向关联
双向关联使用不带箭头的实直线表示,因为双方各自都持有对方类型的成员变量,所以不用使用箭头刻意的表示谁引用了谁。
public class Product { private Customer customer; } public class Custome编程r { private List<Product> products; }
自关联
自关联使用一个带箭头且指向自己的实直线表示,自己包含自己。
public class Node { private Node subNode; }
聚合关系
聚合关系其实是关联关系的一种,是强关联关系,是整体和部分之间的关系。
聚合关系通过成员对象来实现,其中成员对象是整体对象的一部分,但成员对象可以脱离整体对象而独立存在。如:大学(整体)里有很多老师(部分),这些老师属于这个大学,但他们又可以脱离学校单独存在。
聚合关系使用带空心菱形的实直线来表示,菱形指向整体。
组合关系
组合关系是一种更强烈的聚合关系,同样表示的是类之间整体和部分的关系,但相较于聚合关系,组合关系中的整体对象可以控制部分对象的生命周期,一旦整体对象不存在了,部分对象也将不复存在。如:头(整体)和嘴(部分)的关系,头没了,嘴自然也不在了。
组合关系使用带实心菱形的实直线表示,菱形指向整体。
public class Head { private Mouth mouth; } public class Mouth { public void eat() { // doSomething } }
依赖关系
依赖关系是一种使用关系,是对象之间耦合性最弱的一种关联方式,是临时性的关联。使用场景主要为某个类的方法通过局部变量、方法的参数来访问另一个类(被依赖类)中的某些方法。
依赖关系使用带箭头的虚直线表示,箭头指向被依赖类。
public class Car { public void move() { // doSomething } } public class Driver { private String name; public void drive(Car car) { car.move(); } }
继承关系
继承关系是对象之间耦合性最大的一种关系,表示一般与特殊的关系,是父子类之间的一种继承关系。
继承关系又可称为泛化关系,使用带空心三角箭头的实直线表示,箭头从子类指向父类。
public class Person { private String name; private int age; public void speak() { // doSomething } } public class Student extends Person{ private String studentNo; pandroidublic void study() { // doSomething } } public class Teacher extends Person{ private String teacherNo; public void teach() { // doSomething } }
实现关系
实现关系是接口与实现类之间的关系。
实现关系使用带空心三角箭头的虚线表示,箭头从实现类指向接口,箭头也是虚线。
public interface Vehicle { void move(); } public class Car implements Vehicle { @Override public void move() { // doSomething } } http://www.devze.com public class Ship implements Vehicle { @Override public void move() { // doSomething } }
到此这篇关于深入了解Java设计模式之UML类图的文章就介绍到这开发者_Python培训了,更多相关Java UML类图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
精彩评论