UML是啥?--  标准对象建模语言

为啥要学这个?-- 当然是重要才学啦!

什么,你说马老师发来截图,说这个就是练死劲,没用?

我和你说小伙子,传统UML讲究点到为止,以和为贵,与其他语言从来不搞窝里斗,希望你上网自己查查,耗子尾汁。

javaUML 示例图 javauml类图_uml类图实例作业

小伙汁:马老师,你这,你这说啥啊,太抽象了?!!

马老师:你要知道,要画好UML类图,就要先学会三维立体混元劲,以此为丹田运气发力才能画好UML类图。下面我将向你展示如何画好一个UML类图。看好了嗷,嗷,别眨眼,很快的嗷。

------------------------------分割线------------------------------

第一,什么是类,如何用UML表示一个类?

       狭义上,类本质上是引用数据类型;广义上,类是对现实生活中一些具有共同特征的事物的抽象,且类具有三大特点:封装性、继承性、多态性(这些就不细说了)。而在系统设计阶段,类可以认为地分成三种类型:

       1. 实体类:实体对象的抽象,通常来自域模型(现实世界),用来描述具体的实体,通常映射到数据库表格与文件中。

      2. 控制类:控制对象的抽象,主要用来体现应用程序的执行逻辑,将其抽象出来,可以使变化不影响用户界面和数据库中的表。

      3. 边界类:边界对象的抽象,通常是用来完成参与者(用户、外部系统)与系统之间交互的对象,例如:From、对话框、菜单、接口等。

第二,类的UML表示:

javaUML 示例图 javauml类图_uml类图例子_02

第一列:定义类名

第二列:定义属性,其中对于属性可见域的表示有:“+”表示public、“-”表示private、“#”表示protected

第三列:定义行为,同样其作用域的表示与属性一致。

第三,类与类之间的关系有:

1)关联关系 2)依赖关系 3)泛化关系 4)接口与实现关系

ps:关联关系通常将一个类的对象作为另一个类的成员变量

------------------------------分割线------------------------------

单向关联:

在UML类图里用单向箭头连接

javaUML 示例图 javauml类图_uml类图箭头含义_03

//单向关联public class Customer{       private Address address;       .......}//每位顾客都有一个对应的地址public class Address{......}

双向关联:

UML里用不带箭头的实线连接

javaUML 示例图 javauml类图_uml类图例子_04

//双向关联public class Customer {        private Product[] products;        ......}public class Product {       private Customer customer;       ......}

自关联:

UML用带箭头实线指向本身

javaUML 示例图 javauml类图_uml类图箭头含义_05

//自关联public class Book {private Book book;……}

多重性关联(看不懂可跳过):

表示两个关联对象在数量上的对应关系,有如下表格:

javaUML 示例图 javauml类图_uml类图实例作业_06

这里以其中一个例子做说明:

javaUML 示例图 javauml类图_uml类图箭头含义_07

//多重性关联public class Form {       private Button[] buttons; //定义一个集合对象       ......}public class Button {......}

聚合关联:表示整体与部分的关联。在该关联中,成员对象是整体的一部分,但该成员对象也可能脱离出来作为一个单独完整的对象。

javaUML 示例图 javauml类图_uml类图箭头含义_08

//聚合关联public class Car {       private Engine engine;       //构造注入       public Car(Engine engine) {             this.engine = engine;       }           //设值注入       public void setEngine(Engine engine) {             this.engine = engine;       }       ......}public class Engine {       ......}

组合关联:表示整体与部分的关联,但该关联中整体可以控制成员变量的生命周期,即整体与部分为同生共死的关系。

javaUML 示例图 javauml类图_uml类图实例作业_09

//组合关联public class Head {       private Mouth mouth;       public Head() {              mouth = new Mouth(); //实例化成员类       }       ......}public class Mouth {       ......}

这里就讲到关联关系……