UML是啥?-- 标准对象建模语言
为啥要学这个?-- 当然是重要才学啦!
什么,你说马老师发来截图,说这个就是练死劲,没用?
我和你说小伙子,传统UML讲究点到为止,以和为贵,与其他语言从来不搞窝里斗,希望你上网自己查查,耗子尾汁。
小伙汁:马老师,你这,你这说啥啊,太抽象了?!!
马老师:你要知道,要画好UML类图,就要先学会三维立体混元劲,以此为丹田运气发力才能画好UML类图。下面我将向你展示如何画好一个UML类图。看好了嗷,嗷,别眨眼,很快的嗷。
------------------------------分割线------------------------------
第一,什么是类,如何用UML表示一个类?
狭义上,类本质上是引用数据类型;广义上,类是对现实生活中一些具有共同特征的事物的抽象,且类具有三大特点:封装性、继承性、多态性(这些就不细说了)。而在系统设计阶段,类可以认为地分成三种类型:
1. 实体类:实体对象的抽象,通常来自域模型(现实世界),用来描述具体的实体,通常映射到数据库表格与文件中。
2. 控制类:控制对象的抽象,主要用来体现应用程序的执行逻辑,将其抽象出来,可以使变化不影响用户界面和数据库中的表。
3. 边界类:边界对象的抽象,通常是用来完成参与者(用户、外部系统)与系统之间交互的对象,例如:From、对话框、菜单、接口等。
第二,类的UML表示:
第一列:定义类名
第二列:定义属性,其中对于属性可见域的表示有:“+”表示public、“-”表示private、“#”表示protected
第三列:定义行为,同样其作用域的表示与属性一致。
第三,类与类之间的关系有:
1)关联关系 2)依赖关系 3)泛化关系 4)接口与实现关系
ps:关联关系通常将一个类的对象作为另一个类的成员变量
------------------------------分割线------------------------------
单向关联:
在UML类图里用单向箭头连接
//单向关联public class Customer{ private Address address; .......}//每位顾客都有一个对应的地址public class Address{......}
双向关联:
UML里用不带箭头的实线连接
//双向关联public class Customer { private Product[] products; ......}public class Product { private Customer customer; ......}
自关联:
UML用带箭头实线指向本身
//自关联public class Book {private Book book;……}
多重性关联(看不懂可跳过):
表示两个关联对象在数量上的对应关系,有如下表格:
这里以其中一个例子做说明:
//多重性关联public class Form { private Button[] buttons; //定义一个集合对象 ......}public class Button {......}
聚合关联:表示整体与部分的关联。在该关联中,成员对象是整体的一部分,但该成员对象也可能脱离出来作为一个单独完整的对象。
//聚合关联public class Car { private Engine engine; //构造注入 public Car(Engine engine) { this.engine = engine; } //设值注入 public void setEngine(Engine engine) { this.engine = engine; } ......}public class Engine { ......}
组合关联:表示整体与部分的关联,但该关联中整体可以控制成员变量的生命周期,即整体与部分为同生共死的关系。
//组合关联public class Head { private Mouth mouth; public Head() { mouth = new Mouth(); //实例化成员类 } ......}public class Mouth { ......}
这里就讲到关联关系……