学习UML的视频:http://video.1kejian.com/video/?847-0-9.html
已看完了10节,来巩固一下!
UML包括:
事物
结构: 类,接口,构件,节点等等
行为:交互,状态等
分组: 包,子系统
注释: 注释等
关系
依赖 , 关联(聚合,组合),泛化 , 实现
图 : 用例图, 交互图(顺序图, 协作图),类图, 活动图,状态图等
扩展关系:
类使用URL表示:(使用的工具是:Rational Rose )
工具下载地址:http://pan.baidu.com/s/1sjI10PR 里面有破解的方法,貌似64Bit的破解不了
先看代码:
public class Person {
private int age;
private String name;
private boolean sex;
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setSex(boolean sex) {
this.sex = sex;
}
}
那么使用UML表示的话就是
Person就表示类名, age前面的锁便是可见性(private , public , protected)
, : int 表示类型
分三栏, 类名, 属性, 行为
类图表示类之间的关系:
1. 依赖
一个类使用的东西,它都依赖, 类之间的依赖跟应用的 耦合性成正比,设计软件要 尽可能地 降低耦合,提高内聚( 高内聚,低耦合)
是要尽可能降低, 不可能消除,降低不稳定类的依赖,稳定的类(如系统的 类等)
加入代码:
public void foo(Student s){
}
那么就依赖与Student,表示
2.关联 , 可以理解为引用了某个对象
1.关联名, 那个关联的名字,相当于 注释的效果
2.导航 ,单项导航,还是双向导航 , 其中都有是否是直接导航(直接引用) 还是间接导航(通过某个值, 间接可以访问到)
3.角色 ,一个对象在另一个对象中所扮演的角色(与类的某属性相关)
4.多重性, 通俗的讲就是 几对几的关系 1: 多, 多对1 1 对1
5.聚合 整体对应 局部的关系 如:飞机 跟飞机场
6. 组合 强聚合,有着相同的生命周期,如,我创建菜单的时候,同时创建了标题,销毁时标题页同时被销毁了
public class Student {
String name;
int id;
int classId;
}
public class Classes {
int id;
ArrayList<Student> students;
}
多重性描述: 一个学生只能在一个班级, 一个班有很多学生
从上图看: 关联名 就是 描述
单航性 是双向导航
student 在Classes中扮演 StudentList的 角色
Classes 在Student中扮演 classId 的角色
Student 跟 classes 是多对一的关系
3. 泛化 : 表现为继承关系
public class Parent {
}
public class Child extends Parent{
}
各种关系
4. 实现 主要是接口的实现
代码:
public interface TestInterface {
}
public class Test implements TestInterface{
}