2017-01-13 54 views
0

我讀了原型格式的文件...如何克隆可以在原型方法中完成,因爲它返回的是新對象而不是同一個對象?

我看到在網站上的一些地方(包括計算器問的問題)中提到的原型用於複製,也被指出原型,其用於克隆操作...

它是什麼事實?

當克隆需要做它必須返回相同的對象不是新的(在原型模式中使用),如果它返回新的,然後重複句是正確的.... 如果它返回此(當前對象),然後克隆句子將被罰款......

這個對象

我見過很多例子,也是他們的UML圖,UML中它是在克隆方法,他們正在返回該對象(電流或同一對象提到的一件事),但在例子中,他們給了新的對象,這將是完全新的對象。

檢查的鏈接,看到了結構圖和示例鏈接還看到他們給有關原型說明

結構圖鏈接:https://sourcemaking.com/design_patterns/prototype 例如鏈接:https://sourcemaking.com/design_patterns/prototype/cpp/1

釐清對對象的重複我的疑問並且按照我的理解克隆這個對象(複製和克隆)在原型模式給出的相同例子中不會發生。

通常我們使用克隆來緩存事物(添加一些東西到現有的東西,只使用現有的東西),但在原型中它完全返回新的對象,所以說原型被克隆方法用於緩存對象是錯誤的。

+0

克隆和複製對於同樣的事情只是兩個字。原型/原始對象被複制/克隆/複製/複製,並返回新對象。我很好奇:在你的想法中,如果你沒有返回克隆/副本,那麼調用者將如何使用它?重點是什麼? – Andreas

+0

這裏指的是它是否用於緩存?這種模式,如果是的話,它將如何做緩存?因爲它正在返回新的對象 - @Andreas –

+0

您是否在談論擁有原型對象「緩存」的「註冊表」?這就是關於如何獲取要克隆的原型,而與克隆操作本身無關。在克隆原型對象時,您希望返回克隆對象。無論原型來自哪裏(您或註冊表),情況都是如此。 – Andreas

回答

相關問題