【发布时间】:2020-05-26 02:31:34
【问题描述】:
来自 GoF 书:
原型对于像 C++ 这样的静态语言特别有用,其中 类不是对象,类型信息很少或没有 在运行时可用。它在 Smalltalk 等语言中不太重要 或提供相当于原型(即类 object) 用于创建每个类的实例。这个模式是建立的 进入像 Self [US87] 这样的基于原型的语言,其中所有对象 通过克隆原型进行创建。
“类不是对象”是什么意思?
不总是这样吗?
类成为对象意味着什么?
【问题讨论】:
-
就像蓝图不是建筑物一样。在 C++ 中,类是蓝图。基于该蓝图构建的实例是实际对象。
-
它的意思是一个类在数据类型、能力等方面定义了可以成为实例的对象,即对象。在OOP中,对象就像一个概念的可操作示例。跨度>
-
你可能有一个类
foo有 1000 多个实例(对象)。 -
我已经更新了问题。我认为一个类总是不是一个对象,但似乎我错了。我很困惑为什么会提到这样的事情。
-
例如在Java中你可能有一个Class的实例。该实例是一个对象。作为一种类也是对象的语言,Java 并不是对 Prototype 设计模式特别有用。
标签: c++ oop design-patterns prototype