UML笔记01——类图中类之间的关系在代码中的表示形式

    一、六种类图关系

    UML静态建模主要使用类图。

    类之间的关系主要有依赖、关联、组合、聚合、实现、泛化。

    ps:以下内容使用类图与Java代码作解释。


    二、依赖关系

    一般情况下,类与类之间出现依赖关系,在代码之中的具体表现主要有两种:

  • 在类的方法之中使用另一个类作为参数
  • 在类的方法中使用另一类作为局部变量

    (1)作为参数的情况

    类图如下:

   

    类图对应的具体的代码如下 :  

public class A
{
	
	public void fun(B b)
	{
	
	}
}

public class B
{
	
}


      (2)作为局部变量的情况

        类图如下:


    类图对应的具体的代码如下:

public class A
{
	
	public void fun()
	{
		B b;
	}
}

public class B
{
	
}


    三、关联关系

     一般情况下,类与类之间出现关联关系,在代码中的具体表现为在类中使用另一类作为属性。

    类图如下:


    类图对应的具体代码如下:

public class A
{
	
	private B b;
}

public class B
{
	
}


    四、组合关系与聚合关系    

    组合关系与聚合关系本质上就是特殊的关联关系,在代码中的实现与关联关系在代码中的实现相同,都是一类使用另一类作为属性。

    组合与聚合的区别在于使用的场合。

   (1) 组合关系的意思是一类是另一类的组成部分,是定义层面上的一部分。比如手指是手的一部分。在代码中的意思是两类生成的对象的生命周期相同,同时创建,同时消亡,在下面的代码中的含义是,b对象会随着A类的对象的消亡而消亡。如同手没了,其上的手指自然也没了。

    组合关系的类图如下:


    类图对应的具体代码如下:

public class A
{
	
	private B b;
}

public class B
{
	
}

    (2)聚合关系的意思是一类是另一类的一部分,但并不是定义层面上的一部分。比如耳机是电脑的一部分,但耳机也可以插在手机上使用,在代码中的意思是,这个类属性的对象,不会随着此类对象的消亡而消亡,在下面的代码中的含义是,b对象不会随着A类的对象的消亡而消亡。如同电脑碎了,但耳机还在,而且还可以被手机使用。

    聚合关系对应的类图如下:

   

    类图对应的代码如下:

public class A
{
	
	private B b;
}

public class B
{
	
}

    五、泛化关系

    类与类之间的泛化关系就是Java、C++语法中的类的继承。常用作IS-A关系。

    类图如下:


    类图对应的具体代码如下:

public class A extends B
{
	
}

public class B
{
	
}

    六、实现关系

    实现关系是类与接口的关系,在Java中的具体表现,就是接口的实现。

    类图如下:


    类图对应的具体代码如下:

public class A implements B
{
	
}

public interface B
{
	
}


    七、类图关系的耦合度

    在评价软件架构的优劣时,使用的重要标准是高内聚,低耦合。

    以上六种关系的耦合度,由高到低排列为:泛化=实现>组合>聚合>关联>依赖。



猜你喜欢

转载自blog.csdn.net/qq_32165041/article/details/80171651
今日推荐