内容简介:下面就从上面的思维导图开始,详细的介绍UML类图! 在讲解之前请看关系线条图( 统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。【维基百科】UML分为UML模型和UML类图。
下面就从上面的思维导图开始,详细的介绍UML类图! 在讲解之前请看关系线条图( 一定要牢记 ):
1、 什么是UML,概念是什么?
统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。【维基百科】
UML分为UML模型和UML类图。
区分UML模型和UML图是非常重要的,UML图,包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图,是模型中信息的图形表达方式,但是UML模型独立于UML图存在。
2、为什么要用UML?类图的作用
UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 类图的作用: (1):在软件工程中,类图是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解; (2):类图是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型。
3、 类的UML的介绍和画法?
类的UML使用包含 类名、属性、方法名以及参数 。使用带分割线的长方形表示。 代码演示:
public class Person { public String name; protected int age; private String accommodation = "Earth";//住所 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAccommodation() { return accommodation; } public void setAccommodation(String accommodation) { this.accommodation = accommodation; } } 复制代码
类图:
如上这个类图,Person类有三部分组成,分别是类名、属性和操作方法,下面一一进行介绍:
- 类名:
就是 Java 类的名字, 如果是类是抽象类则类名显示为斜体! 其他地方不做改动。
Person
- 属性名:
就是java中的成员变量,一个类可以零到多个属性,java中属性(成员变量)的修饰符,类型和默认值都可以在UML中体现出来。通常用的表达式如下:
可见性 名称:类型[=默认值]
在Java中可见性分为三类,分别是public、private和protected,在类图分别用+、-和#表示;名称为属性的名称;类型在java中有八种基本的数据类型(byte、short、 int、long、 float、 double、 char、 boolean)及String和一些自定义的类型。默认值如变量 accommodation 有初始值为 Earth!
- 操作方法 在java中类的操作方法也是有个通用的表达式如下:
可见性 名称([参数列表:参数1,参数2]):返回类型[:void]
可见性如上名称表达式的介绍,名称就是方法名,参数列表是可选的项,多参数的话参数直接用英文逗号隔开;返回值也是个可选项,返回值类型可以说基本的数据类型、用户自定义类型和void。如果是构造方法,则无返回类型!
4、类之间关系UML的介绍和画法?
(1)泛化(Generalization)关系 : 空心箭头实线表示,箭头指向个人
泛化关系表示类与类之间的继承关系,类和类,接口和接口都可以是继承关系,父类称为基类或者超类,子类称为派生类。子类继承父类实现父类的所有功能,并拥有父类没有的功能!
下面写了两个子类继承Person类!
public class ChineseMan extends Person{ private String skinColor = "yellow"; public void sayHello(){ System.out.println("欢迎来中国 !"); } } public class USAMan extends Person{ private String language = "English"; public void sayHello(){ System.out.println("Welcome to USA !"); } } 复制代码
(2)实现(Realization)关系 : 空心箭头虚线表示,箭头指向约定的元素
实现关系就是java中的一个类和接口之间的关系,接口中一般是没有成员变量。所有操作都是抽象的,只有声明没有具体的实现。
public interface Car { //车的牌子 public void brand(); } public class LandRover implements Car{ public void brand() { System.out.println("This is a LandRover"); } } 复制代码
(3)依赖(Dependence)关系: 虚线箭头表示,箭头指向被依赖的对象
依赖关系是类与类之间最弱的关系,A元素变化会影响B元素,反之不成立。说简单点就是一个类使用了另一个类,这种关系具有临时性特征,一个类的改变由于另一类而受影响。
public class ChineseMan extends Person{ private String skinColor = "yellow"; public void sayHello(){ System.out.println("欢迎来中国 !"); } public void useCar(LandRover car){ System.out.println(car.brand();); } } 复制代码
(4)关联关系: 实线箭头表示,箭头指向(也可以双向)被依赖元素
关联关系表示一个类和另一类有联系,它使一个类知道另一个类的属性和方法,被关联的元素间通常可以被独立的考虑。
/** * 延安人-红色革命圣地欢迎你! */ public class YanAnMan { public ChineseMan cm; //public List<ChineseMan> list; } 复制代码
1..1表示另一个类的一个对象只与该类的一个对象有关系 0..* 表示另一个类的一个对象与该类的零个或多个对象有关系 1..* 表示另一个类的一个对象与该类的一个或多个对象有关系 0..1表示另一个类的一个对象没有或只与该类的一个对象有关系
(5)聚合(Aggregation)关系: 带空心菱形头的实线表示,菱形头指向整体
聚合关系是整体和部分的关系,是一种强的关系,但是部分可以脱离整体而存在。是关联关系的一种。
比如有一辆LandRover,有轮胎和发动机!
(6):组合(Composition)关系:带实心菱形头的实线表示,菱形头指向整体
组合关系是聚合关系的一种变种,便是了更强的组合关系,它要求整体的对象代表部分对象的生命周期。
比如YanMan 的一个大脑!
三 、使用的 工具 和详细的资料
1、使用的画图工具
思维导图:百度脑图 画UML:Microsoft Visio、JUDE、processon等
2、完整的UML类图:
在次附上 关系线条 图:
四、参考资料
Java利器之UML类图详解 UML类图符号 各种关系说明以及举例 深入浅出UML类图
谢谢你的阅读,如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到!祝你每天开心愉快!
不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!
博客首页 : https://aflyun.blog.csdn.net/
愿你我在人生的路上能都变成最好的自己,能够成为一个独挡一面的人
© 每天都在变得更好的阿飞云
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 详解 Spring Session 架构与设计
- Nacos 注册中心的设计原理详解
- 架构设计:异步处理流程,多种实现模式详解
- 设计模式中的多态——策略模式详解
- 模仿hibernate框架,详解hibernate部分方法设计
- 架构设计:分布式服务,库表拆分模式详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
D3.js in Action
Elijah Meeks / Manning Publications / 2014-3 / USD 44.99
Table of Contents Part 1: An Introduction to D3 1 An introduction to D3.js 2 Information Visualization Data Flow 3 D ata-Driven Design and Interaction Part 2: The Pillars of Information......一起来看看 《D3.js in Action》 这本书的介绍吧!