设计模式-1.5原型模式
原型模式(prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。
对于.Net而言,那个原型抽象类Prototype是用不着的,因为克隆是在是太常用了,所以.Net在System命名空间中提供了ICloneable接口,其中唯一的方法Clone(),这样就只需要实现这个接口就可以完成原型模型。
注意事项:如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象。
深复制与浅复制(深拷贝与浅拷贝)
浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。
深复制:把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。