原型模式
原型模式的應(yīng)用場景:
1、類在初始化需要消耗非常多的資源,這個(gè)資源包括數(shù)據(jù)、硬件資源等;
2、通過new 產(chǎn)生一個(gè)對象需要非常繁瑣的數(shù)據(jù)準(zhǔn)備或訪問權(quán)限,則可以使用原型模式;
3、一個(gè)對象需要提供給其他對象訪問,而且各個(gè)調(diào)用者可能都需要修改其值時(shí),可以考慮使用原型模式拷貝多個(gè)對象供調(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ù)需要可取其一。
注:通過拷貝所獲取到的對象是不會(huì)執(zhí)行構(gòu)造函數(shù)的;
---摘自設(shè)計(jì)模式之禪
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。