【问题标题】:Is prototyping in spring uses Clone and satisfies the prototype pattern?Spring中的原型设计是使用Clone并满足原型模式吗?
【发布时间】:2015-09-28 04:43:30
【问题描述】:

我不认为spring在制作proto时确实使用了clone,如果他们使用反射API并创建一个复制对象并将其称为clone/proto,那将是作弊,Springs proto从不满足原型模式的任何条件。

【问题讨论】:

标签: spring clone prototype-pattern


【解决方案1】:

是的,你是对的。 Spring 中的@Scope("prototype") 注解没有实现GoF 的原型设计模式。虽然原型设计模式通过克隆给定原型来创建新对象(参见here),但Spring 的@Scope("prototype") 不会这样做。每次都会通过 Spring 的默认对象创建机制(我猜这是反射)创建一个新对象。如果您查看 Spring 的文档,它甚至会说 @Scope("prototype") 是 Java 的 new 运算符的替代品:

在某些方面,Spring 容器的作用是 原型范围的 bean 是 Java new 运算符的替代品。

(见here

【讨论】:

  • 谢谢Thomas先生,我对spring社区的建议是把prototype这个词改成multiton,如果他们这样做就没有问题,而且超过prototype(克隆)是一个非常好的概念,他们也应该为此提供实现
猜你喜欢
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 2011-07-25
  • 2016-03-25
  • 1970-01-01
  • 2015-12-08
  • 2011-11-17
相关资源
最近更新 更多