2015-09-28 70 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

謝謝托馬斯先生,我對春季社區的建議是將原型改爲多層次,如果他們這樣做,那麼就沒有問題了,而更多的原型(克隆)是一個非常好的概念,他們也應該爲此提供實施 –