对象创建与类实例化的区别

时间:2011-12-23 09:46:35

标签: design-patterns

当我在维基百科阅读Creational Design Patter的定义时,会遇到以下句子。

创作设计模式进一步分为对象创建模式和类创建模式。其中,对象创建模式处理对象创建和类创建处理类实例化。

我的印象是Object Creation和Class Instantiation是同一个。它们是相同还是不同?如果它们不同,那么差异会是什么?

4 个答案:

答案 0 :(得分:4)

发现访问以下linke得到了答案。

http://sourcemaking.com/design_patterns

虽然类创建模式在实例化过程中有效地使用了继承,但是对象创建模式有效地使用委托来完成工作。

答案 1 :(得分:1)

从我的观点来看,与此没有区别。对象创建也被视为创建类的实例,其中结果是创建的对象。所以基本上他们真的是一样的,所以不要混淆它。

答案 2 :(得分:0)

从大多数时候面向对象的角度来看,我们可以交替使用对象创建类实例化,据我所知它是真的,但是从设计模式的角度来看(创造性设计模式)它更详细和具体,定义为“While class-creation patterns use inheritance effectively in the instantiation process, object creation patterns use delegation effectively to get the job done

答案 3 :(得分:0)

作为维基百科“ Creational pattern”:

  

对象创建模式会延迟其对象创建的一部分   到另一个对象,而类创建模式会延迟其对象   创建子类。


根据我对对象创建和类创建的了解,
对象创建:与控制对象的寿命和创建有关的更多内容-这就是为什么我们将对象创建推迟到另一个对象的原因-我们需要控制以下其中一项:

  • 在创建对象时(例如在延迟加载中)
  • 对象寿命,例如在Singleton中
  • 活动对象的数量,例如对象池中的数量

类创建相同: 我们只关心对象的构造和实例化,而这几乎是由子类完成的,例如:

  • 我们通过抽象工厂和工厂方法创建具有不同基础行为的合同对象
  • 构建器,我们需要分离复杂对象的构建
  • 原型,我们通过复制另一个对象来创建对象