组合,聚合的概念,区别以及用Java实现

一、组合,聚合的概念

1.组合概念

组合是关联关系的一种,是比聚合关系强的关系。是通过对现有的对象进行拼装(组合)产生新的、更复杂的功能,组合体现的是整体与部分、拥有的关系。简单点来说,组合就是 A类的对象是B类的成员变量,相当于 A类是B类对象的一个属性。

2.聚合概念

聚合也是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。

二、组合和聚合的联系和区别

组合关系是一种强的整体和部分的关系,整体和部分具有相同的生命周期,同生共死。
聚合关系是一种弱的整体和部分的关系,整体和部分可以相互独立。
组合与聚合是类间的最常见的依赖关系。有时,可以只用组合或聚合来代替继承,弱化依赖关系,也可以通过组合或聚合模拟出多继承的效果(java不支持多继承)。
组合与聚合的其区别是:组合对象在母体消亡时随同一起消亡,而聚合则不然。
在这里插入图片描述

三、用Java实现组合、聚合算法

通过组合模式来解决:

import java.util.ArrayList;
//通过组合模式来过滤串
 
class Myx{
   private ArrayList lst = new ArrayList();
   //Myx对象消亡后,lst对象也随之消亡 	
	public void add(String x){
	   //处理过滤逻辑
	    
	   lst.add(x);
 
	}
	
}
public class Test14 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
	}
 
}

通过聚合模式来解决:

import java.util.ArrayList;
import java.util.List;
class MX{
	private List lst;//此处List是接口
	public MX(List lst){ //List采用外部注入的方式, 从构造方法中传入
	   this.lst = lst;
	}
	public void add(String x){
		//处理过滤逻辑
		lst.add(x);
	}
}
public class Test15 {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList a = new ArrayList(); 
		MX mx = new MX(a);//mx对象消亡后,仍有一个指针指向lst
		a.add("123");
 
	}
 
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值