论UML图中的六大关系

简介: 论UML图中的六大关系

目录

一:六大关系的强弱

二:六大关系的图形表示

三:六大关系在代码里如何体现
最近学习了设计模式,每个模式都需要先画类图,通过这次学习,又对六大关系有了新的理解。

一:六大关系的强弱

       继承>实现>组合>聚合>关联>依赖

二:六大关系的图形表示

       继承:

       实现:

       组合:

       聚合:

       关联:

       依赖:

三:六大关系在代码里如何体现

继承和实现:这两种关系在C#种体现特别直观,如果A类继承了B类,就表为Class A:B,如果B类是个接口,A实现了B,仍表示为A:B,在C#中,一个类只能继承一个父类,但是可以实现多个接口  

组合和聚合:组合和聚合说的都是部分和整体的关系,二者的区别在于,组合时,部分无法脱离整体而存在,聚合时部分可以脱离整体而存在。

 
聚合在代码中的体现:

  class A
    {
        B b;
        public A(B b)
        {
            this.b = b;
        }
    }
  class B
    {  
    }

  A类聚合了B类,B类在类A中作为成员变量,B类作为一个参数,传到A类的构造函数中。B类可以脱离A类单独而存在。B类没有封装在A类里,客户是可以同时知道A类和B类的。

       组合在代码中的体现:

    class A
    {
        B b;
        public A()
        {
            b = new B();
        }
    }
    class B
    {  
    }

 A类组合了B类,B类的对象在A类的构造函数中产生,当需要产生一个A类的对象时候,需要先调用B类的构造函数。客户端是看不到B类的,B类被封装在A类里面。A类和B类同生共死。


       依赖和关联:依赖和关联表示的是一种使用的关系,A类使用B类。


               依赖:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。

//动物依赖水类,水类是动物类中的某个方法
    public class Animal
    {
        public void Grownup()
        {
            Water water = null;
        }
    }
    public class Water
    {
        public Water()
        { }
    }
//水类作为动物类中某个方法的参数或返回值
    public class Animal
    {
        public Water Grownup(Water water)
        {
           return null;
        }
    }
    public class Water
    {
        public Water()
        { }
    }

  关联:关联和依赖的最主要区别就是,类A当中使用了类B,让类B作为类A的全局变量。作用的范围更大,类A和类B就是关联关系。

 //水类作为动物类的全局变量
    public class Animal
    {
        Water water;
    }
    public class Water
    {
        public Water()
        { }
    }

以上就是我对六大关系的总结。

目录
相关文章
|
数据可视化 uml
UML类图的六大关系,最佳学习理解方式
UML类图的六大关系,最佳学习理解方式
437 0
UML类图的六大关系,最佳学习理解方式
|
6月前
|
应用服务中间件 uml
【UML】软件工程中常用图:类图、部署图、时序图、状态图
【UML】软件工程中常用图:类图、部署图、时序图、状态图
982 1
|
uml
UML四大关系
UML四大关系
98 0
UML六大关系总结
UML六大关系总结
146 0
|
设计模式 Java uml
UML的六种关系-系统学习四
众所周知设计模式是程序界的内功心法,那么这内功心法中包含UML图(宏观部分)、场景(场段)、代码(实操),UML图中最重要的元素当属六大关系了至此有了小编的这边总结文章。
|
uml
UML 交互图(序列图 协同图)
UML 交互图(序列图 协同图)
74 0
UML六种关系图示(过目不忘版)
UML六种关系图示(过目不忘版)
143 0
|
uml
【UML】交互图(顺序图、合作图\协作图)
【UML】交互图(顺序图、合作图\协作图)
343 0
|
数据可视化 uml
【UML图】面向对象技术
【UML图】面向对象技术
|
Java 测试技术 C#
【机房合作】UML图之包图再学习
【机房合作】UML图之包图再学习
127 0