【转载】http://www.javaeye.com/topic/37302
注意UML的线型
- 泛化(Generalization):继承的反向
父类 父类实例=new 子类()Test
{
public void test()
{
Animal a=new Tiger();
}
} - 依赖(Dependency):依赖关系表现在局部变量,方法的参数,以及对静态方法的调用
上层类无需定义下层类实例变量
/** 拧螺丝 */
public void screw(Screwdriver screwdriver){
screwdriver.screw();
}
}
pump.blow();
}
}
myBicycle.expand(pumpFromRepairShed1); //到第一个修车棚里充气
- 关联(Association):比如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单;再例如公司和员工,每个公司对应一些特定的员工,每个员工对应一特定的公司。
所涉及的两个对象是独立存在的系统 是处在同一个层次上的bicycle;
}
public void setBicycle(Bicycle bicycle){
this.bicycle=bicycle;
}
/** 骑自行车去上班 */
public void goToWork(){
bicycle.run();
}
}
- 聚合(Aggregration):弱组合关系,聚合类不需要对被聚合类负责
A包括B,但B可以不是A的一部分 飞机场与飞机等
//聚合 Class B { A *a; //}
//组合 Class B { A a; //}
聚合和关联区别,聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。 - 组合(Composite): 强组合关系,A和B生命周期一样,人与心脏 整体与部分不可分割 整体类(人)销毁,部分类(心脏)也销毁
- 实现(Realize):虚线和空心箭头,指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。比如实现类和接口的关系。