聚合或组合

时间:2012-09-05 23:14:27

标签: java oop design-patterns

我有点困惑,所以如果你可以赐教我。

  1. 当我通过我的班级中的新操作符创建对象或使用Singleton时,它是一个组合吗?
  2. 当我打电话给工厂方法时,它也是合成的吗?

2 个答案:

答案 0 :(得分:3)

组合与聚合有关的是组件对象的生命周期,而不是组件对象的实例化方式。如果在处理包含对象时处理组件对象,则它是组合。如果组件对象可以继续存在,那就是聚合。

答案 1 :(得分:2)

术语“组合”在UML和OOP中的含义略有不同。

在UML中,组合是一种更强大的聚合形式,有点像“拥有一个”关联。

GoF设计模式书表明,在OOP中,人们应该支持组合而不是继承。在这种情况下,组合只意味着通过引用类而不是从类继承来提供功能。

似乎你有一些混淆的条款。创建和对象或调用工厂方法本身并不构成。