加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关联与依赖(一)

发布时间:2020-12-13 23:02:02 所属栏目:百科 来源:网络整理
导读:依赖的定义是 有两个类 X,Y ,如果修改 X 的定义可能会引起对另一个元素 Y 的定义的修改,那么 Y 依赖于 B 。具体的表现形式为 1 )一个类中调用了它一个类的方法。 2 )一个类是另一个类的数据成员。 3 )一个类是另一个类的方法参数。 关联的定义是 : 关联

依赖的定义是有两个类X,Y,如果修改X的定义可能会引起对另一个元素Y的定义的修改,那么Y依赖于B。具体的表现形式为1)一个类中调用了它一个类的方法。2)一个类是另一个类的数据成员。3)一个类是另一个类的方法参数。

关联的定义是: 关联表示两类之间存在某种语义上的联系。看大话设计模式,如果类a在类b中声明,那么就是关联。

聚合的定义是:如果a包含b,b不是a的一部分。

组合的定义是:如果a包含b,ba的一部分。

下面来看小段代码

Class a{
public b b1;
}

请问ab的关系。

如果按照大话设计模式,这叫关联。可见,在a中只是声明了b类型的变量,什么时候使,怎么使,根本没有具体的说明,因此,普通关联应该是关系最弱的关系了。

下面再看聚合

Class a{

Public b b1

Public set(b b2){

B1=b2

}

Public give(){

B1.give()

}

}

大话设计模式中是这样实现的聚合。让我们来分析下这样的代码是怎么样实现聚合的特性的。在类中声明,在方法中赋值,并调用体现了a包含b.但是只有a调用了set方法才产生了具体的b,两者间的生命周期并不同步。(但是a消失了,具体的b也会消失,这点怎么体现聚合关系的?不懂,求帮助。)

Class Bird

{

Private Wing wing;

Public Bird()

{

Wing=new Wing();

}

}

大话设计模式这样实现组合。因为在构造方法中强制实现wing对象的实例化,因此,wing与bird的声明周期完全相同,可谓同生共死。是一种非常霸道的占有关系。就宛如人和头一般。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读