課程
/后端開發
/PHP
/大話PHP設計模式
原型模式是clone 一個原型,那為什么不用單例模式呢? 這樣也很省資源啊~
2018-10-26
源自:大話PHP設計模式 10-1
正在回答
clone 不僅僅是克隆一個對象, 而是把對象的初始化屬性也克隆了, 而單例模式只是 防止重復實例化對象.
兩幅畫,兩幅圖,如果用單例的話,這個數據$data應該是靜態共享的,效果應該就是先畫了圖1,然后======,畫圖2的時候,是以圖1中的$data數據為基礎來留空白的,這樣圖2的效果就成了,一塊畫布,兩個矩形重疊的樣子。
單例模式比較常見是到創建一個實例化對象,但是原型模式還帶有一系列的初始化操作。
單例模式是整個程序中某個類只存在一個對象,所有對該對象的改動都會被引用。很顯然,作用跟原型模式是不一樣的,雖然單例模式最省內存。原型模式可以創建出來某個對象的N個實例,只是創建的方法用clone而不是new,省去了初始化過程的大量開銷。所以,原型模式與單例模式的作用與場景都是不同的。
原型模型使用的場景是,創建新對象成本較大時可以利用已有的對象進行復制來獲得,從而降低創建對象的代價,原型模式隱藏了創建對象的復雜性。只需要知道要創建對象的類型,然后通過請求就可以獲得和該對象一模一樣的新對象,無須知道具體的創建過程。使用的目的是創建新對象,而不是獲取同一個對象實例,而且可以進行淺拷貝和深拷貝,單例模式創建的對象都是同一個,該模式只創建了一個對象,而不能創建新的對象。
舉報
幫助PHPer具備使用設計模式解決工程中復雜邏輯的能力
1 回答原型模式,就是工廠模式和單例模式的綜合?
4 回答單例模式
1 回答單例模式和注冊樹模式有什么區別
1 回答單例模式在web中的作用
1 回答調用單例模式一個屬性而引發文件不存在報錯!
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2022-03-26
clone 不僅僅是克隆一個對象, 而是把對象的初始化屬性也克隆了, 而單例模式只是 防止重復實例化對象.
2019-06-20
兩幅畫,兩幅圖,如果用單例的話,這個數據$data應該是靜態共享的,效果應該就是先畫了圖1,然后======,畫圖2的時候,是以圖1中的$data數據為基礎來留空白的,這樣圖2的效果就成了,一塊畫布,兩個矩形重疊的樣子。
2019-01-13
單例模式比較常見是到創建一個實例化對象,但是原型模式還帶有一系列的初始化操作。
2019-01-08
單例模式是整個程序中某個類只存在一個對象,所有對該對象的改動都會被引用。很顯然,作用跟原型模式是不一樣的,雖然單例模式最省內存。原型模式可以創建出來某個對象的N個實例,只是創建的方法用clone而不是new,省去了初始化過程的大量開銷。所以,原型模式與單例模式的作用與場景都是不同的。
2018-10-28
原型模型使用的場景是,創建新對象成本較大時可以利用已有的對象進行復制來獲得,從而降低創建對象的代價,原型模式隱藏了創建對象的復雜性。只需要知道要創建對象的類型,然后通過請求就可以獲得和該對象一模一樣的新對象,無須知道具體的創建過程。使用的目的是創建新對象,而不是獲取同一個對象實例,而且可以進行淺拷貝和深拷貝,單例模式創建的對象都是同一個,該模式只創建了一個對象,而不能創建新的對象。