UML图与应用代码例子: 1.泛化(Generalization) [泛化] 图1.1Animal类与Tiger类,Dog类的依赖关系 [代码表现]
- class Animal{}
- class Tiger extends Animal{}
- public class Test
- {
- public void test()
- {
- Animal a=new Tiger();
- }
- }
2.依赖(Dependency) [依赖] 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的 服务 时,这两个对象之间主要体现为依赖关系。 [具体表现] 依赖关系表现在局部变量,方法的参数,以及对静态方法的调用 [现实例子] 比如说你要去拧螺丝,你是不是要借助(也就是依赖)螺丝刀(Screwdriver)来帮助你完成拧螺丝(screw)的工作 [UML表现](图1.2)
图1.2Person类与Screwdriver类的依赖关系 [代码表现]
-
- public class Person{
- /** 拧螺丝 */
- public void screw(Screwdriver screwdriver){
- screwdriver.screw();
- }
- }
.关联(Association) [关联]
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的
对应
关系时,这两个对象之间为关联关系。
[具体表现] 关联关系是使用实例变量来实现 [现实例子] 比如客户
和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如
公司
和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司
[UML图] (图1.3) 图1.3公司和员工的关联关系 [代码表现]
-
- public class Company{
- private Employee employee;
- public Employee getEmployee(){
- return employee;
- }
- public void setEmployee(Employee employee){
- this.employee=employee;
- }
- //公司运作
- public void run(){
- employee.startWorking();
- }
- }
(4)聚合(Aggregation) [聚合] 当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。 图1.3电脑和组件的聚合关系 [代码表现]
-
- public class Computer{
- private CPU cpu;
- public CPU getCPU(){
- return cpu;
- }
- public void setCPU(CPU cpu){
- this.cpu=cpu;
- }
- //开启电脑
- public void start(){
- //cpu运作
- cpu.run();
- }
- }