原型模式
原型模式的应用场景:
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;
}
}
}
深拷贝与浅拷贝根据需要可取其一。
注:通过拷贝所获取到的对象是不会执行构造函数的;
---摘自设计模式之禅
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。