设计模式:原型模式
来源:互联网 发布:钓鱼岛实际控制权知乎 编辑:程序博客网 时间:2024/06/05 17:36
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。即从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。
原型模式的优势:不用重新初始化对象,而是动态地获得对象运行时的状态。
注意:
浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。
深复制:把引用对象的变量指向复制过的新对象,而不是原来的被引用的对象。
using System;public class Program{ abstract class Prototype { private string id; public Prototype(string id) { this.id = id; } public string Id { get { return id; } } public abstract Prototype Clone(); } class ConcretePrototype1 : Prototype { public ConcretePrototype1(string id):base(id) { } public override Prototype Clone() { //如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象。因此,原始对象机器复本引用统一对象。 return (Prototype)this.MemberwiseClone(); } } static void Main(string[] args) { ConcretePrototype1 p1 = new ConcretePrototype1("I"); ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone(); Console.WriteLine("Cloned: {0}", c1.Id); Console.Read(); }}
其中.NET在System命名空间中提供了ICloneable接口,其中就是唯一的一个方法Clone(),只需要实现这个接口就可以完成原型模式。
阅读全文
0 0
- 设计模式:原型模式
- 设计模式------原型模式
- 设计模式 原型模式
- 设计模式-【原型模式】
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式- 原型模式
- 设计模式:原型模式
- 设计模式 - 原型模式
- 设计模式-原型模式
- 【设计模式】原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 【设计模式】原型模式
- 设计模式----原型模式
- 设计模式------原型模式
- 计算化学程序的实现:一些问题
- Revit API之Document与UIDocument的深入理解【比目鱼原创】
- 运行时权限
- 第4章 数据类型
- D3.js中的Calendar View详解
- 设计模式:原型模式
- 金山云主机特价主机-609元1年的1核2G50G
- 粒子群算法
- Mock 测试应用场景
- IDEA+Maven创建Web项目
- form表单提交返回页面alert弹窗提示
- Maven项目中properties文件的加载方式
- test
- 修改MyEclipse新建jsp文件的pageEncoding默认编码