您好,登錄后才能下訂單哦!
原型模式
原型模式的應(yīng)用場景:
1、類在初始化需要消耗非常多的資源,這個資源包括數(shù)據(jù)、硬件資源等;
2、通過new 產(chǎn)生一個對象需要非常繁瑣的數(shù)據(jù)準(zhǔn)備或訪問權(quán)限,則可以使用原型模式;
3、一個對象需要提供給其他對象訪問,而且各個調(diào)用者可能都需要修改其值時,可以考慮使用原型模式拷貝多個對象供調(diào)用者使用。
[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; } } }
深拷貝與淺拷貝根據(jù)需要可取其一。
注:通過拷貝所獲取到的對象是不會執(zhí)行構(gòu)造函數(shù)的;
---摘自設(shè)計模式之禪
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。