合成和聚合的关系


合成聚合原则中,合成是值【value-变量有具体的值,基本变量在编译期有认的值】的聚合,而聚合是引用的聚合,接受外界的值;

可见,两者的生命周期其实是可以是一样的;从生命周期的角度不能提取出区别;

但是对于依赖关系中的聚合来说,声明周期的区别是明显的;

所以,总结是:如果合成和聚合都是以全局变量的形式出现,那么区别是一个是值【value,比如聚合自己的一个list对象】的聚合,而聚合只是引用的聚合【认初始值null】

如果聚合是以局部变量的形式出现,那么区别就是生命周期的区别了;

public class Adapter extends Adaptee implements Target{

         public void request(){

                   this.specialRequest();

         }

}
适配器模式中对于单个接口的适配我们可以直接通过extends来完成,但是对于多个接口的适配,我们可能需要合成2个Adaptee对象来完成目标接口的适配

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...