【问题标题】:Difference between Object Creation and Class Instantiation对象创建和类实例化之间的区别
【发布时间】:2019-06-05 01:43:57
【问题描述】:

当我在 Wikipedia 中阅读 Creational Design Pattern 的定义时,遇到过以下句子。

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

我的印象是对象创建和类实例化是一回事。它们是相同的还是不同的?如果它们不同,会有什么不同?

【问题讨论】:

  • 认为是“类实例化”,它们指的是类加载

标签: design-patterns


【解决方案1】:

正好访问以下链接得到了答案。

http://sourcemaking.com/design_patterns

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

【讨论】:

    【解决方案2】:

    在我看来,这没有区别。对象创建也被认为是创建类的实例,其中结果是创建的对象。所以基本上它们真的是一样的,所以不要混淆它。

    【讨论】:

      【解决方案3】:

      作为维基百科“Creational pattern”:

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


      正如我对对象创建和类创建的理解:
      对象创建:更多的是控制对象的生命周期和创建——这就是我们将对象创建推迟到另一个对象的原因——我们需要控制以下之一:

      • 对象创建时如在延迟加载中
      • 对象生命周期,例如单例
      • 对象池等活动对象的数量

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

      • 抽象工厂和工厂方法我们创建了一个具有不同底层行为的合约对象
      • 我们需要单独构造一个复杂对象的构造器
      • 原型我们通过复制另一个对象来创建一个对象

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2010-11-15
          • 2020-04-21
          • 2023-03-19
          • 2014-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-25
          相关资源
          最近更新 更多