UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。html
若是把软件看成房子,那么类图就是房子的施工图了.数据库
经过类图,就能实际的把系统中的各个类,即对象描述清楚,下一步就是按照这个详细的设计编码了。设计模式
我用的是Enterprise Architect 12.1(如下简称EA)这个工具画UML类图的,这个工具十分强大,还能够把数据库的表逆向生成UML图.Enterprise Architect下载工具
安装成功后咱们来建立一个项目小试身手.学习
这里的东西是模板自动生成的,能够点击看看,学习一下.我这里都删了,而后从新建立.编码
建立一个类:.net
详细页设置属性和方法:设计
设置属性:3d
设置方法:code
一个类就建立好了:
再来个简单的例子 : 咱们有一个动物的接口、狗的抽象类,还有一个泰迪的类,它们的关系是泰迪继承狗的抽象类,狗的抽象类实现动物接口,它们都有一个公共的叫声(cry)方法.
用UML类图画一下它们三个的关系.
如今咱们已经对类图的基本结构、访问修饰符在类图的符号有了一个基本的了解,
接下来作一个进阶一点的学习.
这是网友总结的UML类图使用案例,很详细,功能很全.
经过上面的图对UML有一个总体的认识,接下来我会对UML类图中的一下几种关系为你们作一个详细的介绍:
定义: 泛化是一种继承关系,继承就是子类继承父类的特征和行为,使得子类对象(实例)具备父类的实例域和方法,或子类从父类继承方法,使得子类具备父类相同的行为。
符号: 空心三角指向父类
示例: 泰迪是狗的一个种类,因此泰迪继承狗.
定义: 是一种类与接口的关系,表现是类是接口全部特征和行为的实现
符号: 空心三角指向父类
示例: 狗是一种动物,因此狗实现动物的接口
定义:
关联是一种结构关系,说明一个事物的对象与另外一个事物的对象相联系.
给定有关联的两个类,能够从 一个类的对象获得另外一个类的对象.
关联有两元关系和多元关系,两元关系是指一种一对一的关系,多元关系是一对多或多对一的关系。两个类之间的简单关联表示了两个同等地位类之间的结构关系。
当你想要表示结构化关系时使用关联。(能够想一想数据库表的关联关系)
一般状况下,关联关系是经过类的成员变量来实现的.
符号: 箭头指向被拥有者
示例: 一个公司雇员,公司与雇员之间就是一种关联关系。
代码:
//公司 public class Company { //一个公司雇员,公司与雇员之间就是一种关联关系。 private Employee emp ; } public class Employee{ }
关联关系还能够细分为聚合和组合两种.
定义: 聚合表示一种弱的"拥有"关系,体现的是A对象能够包含B对象,但B对象不是A对象的一部分.
符号: 空心菱形指向总体
示例: 雁群包含大雁,可是大雁能够脱离雁群
定义: 组合是一种强的"拥有"关系,体现了严格的部分和总体关系,部分和总体的生命周期同样 部分不能离开总体存在.
符号: 实心菱形指向总体
示例: 以驱赶划分,人是由身体、四肢组成的,胳膊不能脱离人单独存活.
定义: 依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。在你想显示一个事物使用另外一个事物时使用。
依赖关系的使用形式: 局部变量、方法的参数或者对静态方法的调用
符号: 虚线箭头指向被拥有者.
示例: 一般状况下,依赖关系体如今某个类的方法使用另外一个类做为参数,例如人类使用螺丝刀.
代码:
//螺丝刀,做为人类的工具,是用来被人类使用的 public class Screwdriver { } public class Person{ //拧螺丝,需使用螺丝刀 public void screw(Screwdriver src){ } }
大话设计模式