原型模式

#原型模式

##剛剛經過學習後整理

1 原型模式(Prototype Pattern)是指原型實例指定創建對象的
種類,並且通過拷貝這些原型創建新的對象。
2調用者不需要知道任何創建細節,不調用構造函數。
3屬於創建型模式

#原型模式的適用場景

1、類初始化消耗資源較多。
2、new產生的一個對象需要非常繁瑣的過程(數據準備、訪問權限等)
3、構造函數比較複雜。
4、循環體中生產大量對象時,可讀性下降。

原型模式就是如何快速構建對象的方法總結:
1,簡單工廠將getter、setter封裝到某個方法中
2,JDK提供的實現Cloneable接口,實現快速複製
scope=“prototype”,scope=”singleton”
3,常用的有BeanUtils.copy(),Json.pareaObiect()和Guava

#原型模式的優點

原型模式性能比直接new一個對象性能高
簡化了創建過程

#原型模式的缺點

必須配備克隆(或者可拷貝)方法
對克隆複雜對象或對克隆出的對象進行復雜改造時,易帶來風險。
深拷貝、淺拷貝要運用得當

#克隆破壞單例模式

如果我們克隆的目標的對象是單例對象,那意味着,深克隆就會破壞單例。實際上防止克隆破壞單例解決思路非常簡單,禁止深克隆便可。要麼你我們的單例類不實現Cloneable 接口;要麼我們重寫clone()方法,在clone 方法中返回單例對象即可,具體代碼如下:

@Override
protected Object clone() throws CloneNotSupportedException {
return INSTANCE;
}
發佈了21 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章