UML学习-摘自《大话设计模式》

  在自己设计的过程中,有时很困惑于这些类图。记下来以便后面回顾。

       类(class) :类图分三层。第一层显示类的名称,若是抽象类,则用斜体显示。第二层显示类属性,通常为字段或属性。第三层显示类的操作,即方法或行为。属性和方法前的符号:"+"表示public,"-"表示private,“#” 表示protected。

       接口(interface):矩形表示法及棒棒糖表示法。矩形表示法:顶端有《interface》,第一行接口名称,第二行接口方法。棒棒糖表示法:圆圈旁边为接口名称,方法在类中表示。

       继承(extends):空心三角形+实线。如图中鸟继承于动物,鸟具有动物的基本属性,并且有身为鸟类特殊的属性及方法。

       实现(implements):空心三角形+虚线。如图中的大雁实现了飞翔的接口,大雁也就具有了飞的方法。

       关联(association):实线箭头。如图中企鹅和气候的关系,企鹅需要知道气候的变化,因此在它的内部中添加了气候的属性,表示它知道了气候的类。

      

1 public class Penguin extends Bird
2 {
3 private Climate climate
4}


       聚合(aggregation):空心菱形+实线箭头。聚合表示一种弱“拥有"关系,即A类可以包含B类,但B类不是A类中的一部分,如图中的雁群和大雁的关系,雁群中有大雁,但大雁不是雁群的一部分。

1 public   class  WideGrooseAggregation
2 {
3   private WideGroose[] arrayWideGroose
4}

 
      组合(composition):实心菱形+实线箭头。组合表示一种强“拥有"关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。如图中,鸟和翅膀的关系。其中,连线两端的"1"和"2",称为基数,表示这一端的类有几个实例。如果一个类可以有无数个实例,则用"n"表示。关联关系、聚合关系也可以有基数。

1 public   class  Bird
2 {
3   private Wing wing;
4   public Bird()
5   {
6     wing = new Wing();
7   }

8}


 

       依赖(dependency):虚线箭头。如图中,动物、水和氧气的关系。动物需要水和氧气。

依赖关系示例
1abstract class Animal
2{
3    public Metabolism(Oxygen oxygen, Water water);
4}


 

你可能感兴趣的:(UML学习-摘自《大话设计模式》)