2015-09-28 77 views
1

我不认为spring会在制作原型时使用clone,如果他们使用反射API并创建一个副本对象并将其称为clone/proto,那么这将是作弊,Springs原型永远不会满足任何原型模式的条件。春季原型是否使用克隆并满足原型模式?

+0

[以下原型设计图案弹簧原型]的可能的复制(http://stackoverflow.com/questions/26609980/spring-prototype-following-prototype-design-pattern) – jaco0646

回答

0

是的,你是对的。 Spring中的@Scope("prototype")注释没有实现GoF的原型设计模式。虽然原型设计模式通过克隆给定原型创建新对象(请参阅here),但Spring的@Scope("prototype")不会这样做。它会每次由Spring的默认对象创建机制创建一个新对象(这是我猜测的反射)。如果你看一下Spring的文档,它埃文斯说,@Scope("prototype")是Java的new运营商的替代品:

在某些方面,Spring容器的关于一个 原型作用域的bean的作用是Java新的替代品运营商。

(参见here

+0

谢谢托马斯先生,我对春季社区的建议是将原型改为多层次,如果他们这样做,那么就没有问题了,而更多的原型(克隆)是一个非常好的概念,他们也应该为此提供实施 –