Java编程算法基础---组合与聚合
来源:互联网 发布:淘宝新店铺推广怎么写 编辑:程序博客网 时间:2024/04/29 10:41
组合与聚合是类间的最常见的依赖关系。有时,可以只用组合或聚合来代替继承,弱化依赖关系,也可以通过组合或聚合模拟出多继承的效果(java不支持多继承)。
组合与聚合的其区别是:组合的对象在母体消亡时随同一起消亡,而聚合则不然。
举例: 战士和他的心脏是组合关系
战士和他的步枪是聚合关系
通过继承ArrayList来解决:
package NO3;import java.util.ArrayList;class MyX extends ArrayList{public boolean add(Object x){//通过覆盖ArrayList的add方法,来加入我们自己的逻辑 //这种使用方式应当尽量避免//写具体的逻辑 相同长度的字符串只能加入两次return true;}}public class Test13 {public static void main(String[] args) {// TODO Auto-generated method stub MyX aMyX =new MyX(); aMyX.add("123"); aMyX.add("abcd"); aMyX.add("234"); aMyX.add("456"); }}
通过组合模式来解决:
package NO3;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}}
通过聚合模式来解决:
package NO3;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 stubArrayList a = new ArrayList(); MX mx = new MX(a);//mx对象消亡后,仍有一个指针指向lsta.add("123");}}
0 0
- Java编程算法基础---组合与聚合
- java中的组合与聚合
- Java编程算法基础----组合数学实践
- UML基础之组合与聚合关系
- 03-06组合与聚合_编程
- java 聚合与组合的区别
- java 关联中的 组合与聚合
- java中组合与聚合的区别
- java中组合与聚合的区别
- Java中组合与聚合的区别
- 聚合与组合
- 聚合与组合
- 聚合与组合
- 聚合与组合
- UML聚合与组合
- 组合与聚合
- 组合与聚合
- 【算法基础】排列与组合
- groups
- 结构模式之装饰模式
- vnc不行换 x11vnc
- shell结
- lombok---让代码少的可怜.
- Java编程算法基础---组合与聚合
- IOS 拨打电话
- iOS 应用程序开发的6个Xcode小技巧
- 金属&&核音乐入门
- MySql表数据行列转换
- chgrp
- activeMq发送消息流程
- 为什么MFC对话框非模态对象不能是静态局部变量?
- chown