原型模式
原型模式的應用場景:
1、類在初始化需要消耗非常多的資源,這個資源包括數據、硬件資源等;
2、通過new 產生一個對象需要非常繁瑣的數據準備或訪問權限,則可以使用原型模式;
3、一個對象需要提供給其他對象訪問,而且各個調用者可能都需要修改其值時,可以考慮使用原型模式拷貝多個對象供調用者使用。
[Serializable] public class PrototypeClass { //淺拷貝 public PrototypeClass ShawllowClone() { return this.MemberwiseClone(); } //深拷貝 public PrototypeClass DeepClone() { using (Stream objectStream = new MemoryStream()) { IFormatter formatter = new BinaryFormatter(); formatter.Serialize(objectStream, this); objectStream.Seek(0, SeekOrigin.Begin); return formatter.Deserialize(objectStream) as PrototypeClass; } } }
深拷貝與淺拷貝根據需要可取其一。
注:通過拷貝所獲取到的對象是不會執行構造函數的;
---摘自設計模式之禪
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。