UML类图关系总结

    最近正在准备软考,又一次的见到了设计模式,但是我们在复习的过程中发现有时对于UML类图之间的关系的强弱和对应代码的实现并不是特别的理解,所以现在整理整理,回顾一下之前的知识。

一、常见的几种的关系:

  1. 依赖

  2. 关联

  3. 聚合

  4. 组合

  5. 实现

  6. 泛化

        各种关系的强弱顺序:  

   泛化=实现>组合>聚合>关联>依赖   

二、依赖和关联

  • 依赖

  1. 含义:一种使用的关系,描述一个对象(B)的修改会导致另一个对象(A)的修改,对象A知道对象B的存在,还会“使用”对象B的属性或方法。

  2. 代码表现:局部变量、方法的参数或者对静态方法的调用
  3. UML类图:依赖关系用带箭头的虚线表示,有依赖的一方指向被依赖的一方                                UML类图关系总结_第1张图片

  4. 对应代码:

    <span style="background-color: rgb(51, 51, 0);">public class Observer {
    
    	public Observer(){
    
    	}
    
    	~Observer(){
    
    	}
    
    	public virtual void Dispose(){
    
    	}
    
    	public void Update(){
    
    	}
    
    }</span>

    public class Sub<span style="font-family:SimSun;">j</span>ect {
    
    	public Sub<span style="font-family:SimSun;">j</span>ect(){
    
    	}
    
    	~SubJect(){
    
    	}
    
    	public virtual void Dispose(){
    
    	}
    
    	public void Attach(){
    
    	}
    
    	public void Detach(){
    
    	}
    
    }

  •  关联

  1. 含义:一种拥有的关系,描述不同类的对象之间的结构关系,它使一个类知道另一个类的属性和方法。
  2. 代码表现:成员变量
  3. UML类图:                                                                                         UML类图关系总结_第2张图片  
  4. 对应代码:                                                                                      
    public class Observer {
    
    	<strong><span style="color:#3366FF;">public Subject m_Subject;</span></strong>
    
    	public Observer(){
    
    	}
    
    	~Observer(){
    
    	}
    
    	public virtual void Dispose(){
    
    	}
    
    	public void Update(){
    
    	}
    
    }

    public class Subject {
    
    	public Subject(){
    
    	}
    
    	~Subject(){
    
    	}
    
    	public virtual void Dispose(){
    
    	}
    
    	public void Attach(){
    
    	}
    
    	public void Detach(){
    
    	}
    
    }
  • 对比                                                                                                                                                                      UML类图关系总结_第3张图片      

三、聚合和组合

  • 聚合

  1. 含义:描述实体对象之间的关系,表达整体由部分构成
  2. 代码体现:成员变量
  3. UML类图:                                                                                         UML类图关系总结_第4张图片                                                                                                              
  4. 对应代码:
    public class Invoker {
    
    	<span style="color:#3333FF;">public Command m_Command;</span>
    
    	public Invoker(){
    
    	}
    
    	~Invoker(){
    
    	}
    
    	public virtual void Dispose(){
    
    	}
    
    	public void Action(){
    
    	}
    
    }
                                                                                                
    public class Command {
    
    	public Command(){
    
    	}
    
    	~Command(){
    
    	}
    
    	public virtual void Dispose(){
    
    	}
    
    	public void Excute(){
    
    	}
    
    }
  • 组合

  1. 含义:描述实体对象之间的关系,表达整体拥有部分
  2. 代码表现:成员变量
  3. UML类图:                                                                                          UML类图关系总结_第5张图片
  4. 对应代码 :                                                                                      
    public class Bird {
    
    	private Wing m_Wing;
    
    	public Bird(){
                 m_Wing = new Wing(); 
    
    	}
    
    	~Bird(){
    
    	}
    
    	public virtual void Dispose(){
    
    	}
    
    }

    public class Wing {
    
    	public Wing(){
    
    	}
    
    	~Wing(){
    
    	}
    
    	public virtual void Dispose(){
    
    	}
    
    }<span style="font-family:SimSun;font-size:18px;">                                                                                         </span>
    
  • 对比      

              UML类图关系总结_第6张图片                                        

四、实现和泛化

  • 实现

  1. 含义:是一种类与接口的关系,表示类是接口所有特征和行为的实现
  2. UML图:                                                                                                                  UML类图关系总结_第7张图片
  • 泛化

  1. 含义:描述两个对象之间的继承关系,指定了子类如何特化父类的所有特征和行为

  2. UML图:

UML类图关系总结_第8张图片

  • 对比

    这设计模式中,对于这两种关系,主要体现在接口和抽象类 ,下一篇博客将对接口和抽象类进行整理。

五、总结

   这次在含义、类图和类图对应的代码上进行了总结,在接下类的设计模式中,可以根据这种形式分析UML图和对应的代码的联系,将会更加有助于我们对于设计模式的理解。                                                                                 

你可能感兴趣的:(设计模式,UML)