UML类图的依赖和关联详解(含代码)

众所周知,UML类图分为三种关系:
继承(实现)、依赖、关联。
其中关联又分为:组合和聚合;
共性:都是指两个类之间的耦合强弱,依赖<关联<继承。
首先我们介绍耦合最低的依赖关系。
依赖:
我认为的依赖关系为类A使用了类B的某一个或几个方法,即A uses B.method()。

// 类A
Public Class Person()
{ 
   Public Person(){}
   Public Void PlayGame()
   {
       Game game = new Game;
       game.LoL();
   }
}

//类B
Publib Class Game()
{
   Public Game(){};
   Public Void LOL()
   {
      System.out.print("我要打英雄联盟啦");
   }
}   

由代码可以看出,人会打游戏,通过调用Game的方法。注意:
第一:只有Person类的PlayGame的方法被调用时,Game类才会被实例化,作为一个局部变量来使用,所以Game的生命周期短。
第二:无论Game类除了LOL方法之类,增加其他方法或者成员变量,都不会影响到Person类,所以依赖的耦合性低。

关联
关联表现为一种更深层次的一直依赖关系,比如夫和妻之间的关系。同样地,通过代码来阐述这种关系。

Public Class Husband()
{
   Public Husband(){};
   Wife wife;
}

Public Class Wife()
{
   Public wife(){};
   Husband husband;
}
  

这段代码中体现了“你中有我,我中有你”的含义在里面,这就是关联(双向关联),一个类成为了另外一个类的属性,这是一种更为紧密的耦合关系。

那么关联和依赖的区别在哪里呢?
通过上面的举例子,大家可能有那么点点感觉了,我在此总结一下:
1:生命周期不同。关联为当类是实例化的时候就产生,而依赖是随着另外一个类的方法调用而产生,随着方法结束而关闭,因此,关联关系比依赖关系生命周期更长。说得更简单一点,大家可以把依赖和关联的区别,理解为局部变量和全局变量的关系。
2:重要性的权重不同。依赖关系为“偶尔”使用的关系,即类A偶尔使用类B的某个方法;而关联关系为"经常"使用的关系,类A将类B作为类A的一个属性(作为我生命中的一部分,你说类B重不重要啊,哈哈哈),会经常用到类B的某些方法或者是成员变量。

关于继承关系我就不在这里解释了,这个大家应该都懂;
关于关联关系的两种更为细化的关系,请看我下一篇博客。

转载请指明原处,尊重大家的时间,谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值