合成聚合原则中,合成是值【value-变量有具体的值,基本变量在编译期有默认的值】的聚合,而聚合是引用的聚合,接受外界的值;
可见,两者的生命周期其实是可以是一样的;从生命周期的角度不能提取出区别;
但是对于依赖关系中的聚合来说,声明周期的区别是明显的;
所以,总结是:如果合成和聚合都是以全局变量的形式出现,那么区别是一个是值【value,比如聚合自己的一个list对象】的聚合,而聚合只是引用的聚合【默认初始值null】
如果聚合是以局部变量的形式出现,那么区别就是生命周期的区别了;
public class Adapter extends Adaptee implements Target{ public void request(){ this.specialRequest(); } }适配器模式中对于单个接口的适配我们可以直接通过extends来完成,但是对于多个接口的适配,我们可能需要合成2个Adaptee对象来完成目标接口的适配