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 {......}
这里就讲到关联关系……
参考文章:http://www.uml.org.cn/oobject/201211231.asp