原型模式即通過乙個已有的物件clone出乙個一樣的物件,當直接建立該物件非常消耗資源時則可以考慮原型模式。實現轉殖操作,繼承 cloneable,重寫object的 clone()。
轉殖分深度轉殖和淺度轉殖
淺度轉殖:只把需要轉殖物件的成員變數的值複製過去,如果是引用變數也只會複製引
用位址,指向的和原物件是同乙個物件。
深度轉殖:把需要轉殖物件的引用成員變數也轉殖乙份。
淺度轉殖public
class
******clone
implements
cloneable
public object clone()
catch
(clonenotsupportedexception e)
return new******clone;
}}
深度轉殖重寫clone方法,在clone方法中把需要轉殖的成員變數也clone乙份讓後賦值
(此方法只支援,成員變數也為cloneable)
public
class
******clone
implements
cloneable
public object clone()
catch
(clonenotsupportedexception e)
return new******clone;
}}
通過序列化方式(此方式需要成員變數均實現serializable介面)
public
class
******clone
implements
cloneable
,serializable
public object clone()
catch
(ioexception e)
catch
(classnotfoundexception e)
return new******clone;
}}
一天乙個設計模式 單例模式
1.餓漢模式public class sprivate static s s news public static s get 執行緒安全,載入時就初始化,根據需求來,此種用法最簡單2.懶漢模式public class sprivate static s s public static s get ...
一天乙個設計模式 建造者模式
這個模式和工廠模式很像,建造者 builder 模式和工廠模式的關注點不同 建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程,但兩者可以結合使用。舉個栗子,stringbuilder public class abstractstringbuilder char c privat...
一天乙個設計模式 享元模式
享元模式 flyweight pattern 主要用於減少建立物件的數量,以減少記憶體占用和提高效能。這種型別的設計模式屬於結構型模式,它提供了減少物件數量從而改善應用所需的物件結構的方式。在享元模式中共享的是享元物件的內部狀態,外部狀態需要通過環境來設定。在實際使用中,能夠共享的內部狀態是有限的,...