细说UML五种关系

依赖关系(Dependence):

         依赖关系是一种使用关系,对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,当一个系统改变会影响到另一个系统,反之不成立。或者依赖另一个系统的服务时,例如生产零件的机器和零件,机器负责构造零件对象。

         出现依赖的三种情况:

         1A类是B类某个方法的局部变量。

         2A类是B类的一个参数。

         3A类向B类发送消息,让B类变化。

         生命周期:B类开始调用含有A类的方法开始实例化,当方法使用结束后释放。

              

[csharp] view plaincopy
  1. public class 动物 {  
  2.         private bool 生命;  
  3.         /// <param name="氧气"></param>  
  4.         /// <param name="水"></param>  
  5.         public void 新陈代谢(bool 氧气, bool 水){  
  6.         }  
  7.     }   


关联关系(Association ):

    关联是一种结构化的关系,指一种对象和另一种对象有联系。给定有关联的两个类,可以从一个类的对象得到另一个类的对象。当你想要表示结构化关系时使用关联,如果几个类元的实例之间有联系,那么这几个类元之间的语义关系即关联。关联描述了系统中对象或实例之间的离散连接。例如:例如客户和订单,每个订单对应着固定的订单。

    生命周期:关联关系A类将B类添加为属性,由A实例化开始实例化,A类释放,B类随着释放。

        

[csharp] view plaincopy
  1. public class 动物 {  
  2.     public 气候 m_气候;  
  3.     public 动物(){  
  4.     }  
  5. }  

泛化关系(Generalization):

         是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系

           

[csharp] view plaincopy
  1. public class 动物 {  
  2.         public 动物(){  
  3.         }  
  4.         ~动物(){  
  5.         }  
  6.         public virtual void Dispose(){  
  7.         }  
  8.     }//end 动物  
  9.     public class 鸟 : 动物 {  
  10.         private bool 羽毛;  
  11.         public 鸟(){  
  12.         }  
  13.         ~鸟(){  
  14.         }  
  15.         public override void Dispose(){  
  16.         }  
  17.         public void 下蛋(){  
  18.         }  
  19.     }//end 鸟  


 

组合关系(Composition):

    组合关系是一种整体与部分的关系,强调的是整体性,而且是不可分割的。它直接要求包含对象对被包含对象的拥有以及包含对象与被包含对象生命周期的关系,被包含的对象是可以共享的。例如,鸟的翅膀是鸟的一部分。

    

[csharp] view plaincopy
  1. public class 鸟 {  
  2.     public 翅膀 m_翅膀;  
  3.     public 鸟(){  
  4.     }  
  5.     public void finalize() throws Throwable {  
  6.     }  
  7. }  
  8.     public class 翅膀 {  
  9.         public 翅膀(){  
  10.         }  
  11.         ~翅膀(){  
  12.         }  
  13.         public virtual void Dispose(){  
  14.         }  
  15.     }//end 翅膀  


 

聚合(aggregation)关系:

        关联关系的一种特例, 是强的关联关系. 聚合是整体和个体之间的关系。它暗含这一种所属关系以及生命期关系。被聚合的对象是可以共享的。虽然是共享的,聚合代表的是一种更亲密的关系。

       

[csharp] view plaincopy
  1. public class 鸟群 {  
  2.         public 鸟 m_鸟;  
  3.         public 鸟群(){  
  4.         }  
  5.         ~鸟群(){  
  6.         }  
  7.         public virtual void Dispose(){  
  8.         }  
  9.     }//end 鸟群  


 

组合与聚合的区别:1.构造函数不同

        a.聚合:个体是群体的一个参数

                b.组合:构造中包括个体的实例化

         2.封装性不同

            a.聚合:外界可以看见个体类和群体类。

            b.组合:外界只能看见群体类

 

五种关系的耦合性:依赖<关联<聚合<组合<泛化

原文地址:https://www.cnblogs.com/mangci/p/3024071.html