我不认为spring会在制作原型时使用clone,如果他们使用反射API并创建一个副本对象并将其称为clone/proto,那么这将是作弊,Springs原型永远不会满足任何原型模式的条件。春季原型是否使用克隆并满足原型模式?
1
A
回答
0
是的,你是对的。 Spring中的@Scope("prototype")
注释没有实现GoF的原型设计模式。虽然原型设计模式通过克隆给定原型创建新对象(请参阅here),但Spring的@Scope("prototype")
不会这样做。它会每次由Spring的默认对象创建机制创建一个新对象(这是我猜测的反射)。如果你看一下Spring的文档,它埃文斯说,@Scope("prototype")
是Java的new
运营商的替代品:
在某些方面,Spring容器的关于一个 原型作用域的bean的作用是Java新的替代品运营商。
(参见here)
+0
谢谢托马斯先生,我对春季社区的建议是将原型改为多层次,如果他们这样做,那么就没有问题了,而更多的原型(克隆)是一个非常好的概念,他们也应该为此提供实施 –
[以下原型设计图案弹簧原型]的可能的复制(http://stackoverflow.com/questions/26609980/spring-prototype-following-prototype-design-pattern) – jaco0646