C#原型模式之深复制实现

简介:

SYSTEM空间有ICONEALBE接口。。。因为其太常用。

复制代码
  1 /*
  2  * Created by SharpDevelop.
  3  * User: home
  4  * Date: 2013/4/21
  5  * Time: 22:20
  6  * 
  7  * To change this template use Tools | Options | Coding | Edit Standard Headers.
  8  */
  9 using System;
 10 
 11 namespace Resume
 12 {
 13     class Program
 14     {
 15         public static void Main(string[] args)
 16         {
 17             Resume a = new Resume("大鸟");
 18             a.SetPersonalInfo("", "24");
 19             a.SetWorkExperience("1998-2000","国务院外事办");
 20             
 21             Resume b = (Resume)a.Clone();
 22             b.SetPersonalInfo("", "26");
 23             b.SetWorkExperience("2000-2003","香港回归事务所");
 24             
 25             Resume c = (Resume)a.Clone();
 26             c.SetPersonalInfo("", "28");
 27             c.SetWorkExperience("2005-2008","华盛顿亚洲战略中心");
 28             
 29             
 30             a.Display();
 31             b.Display();
 32             c.Display();
 33             
 34             
 35             Console.Write("Press any key to continue . . . ");
 36             Console.ReadKey(true);
 37         }
 38     }
 39     class WorkExperience : ICloneable
 40     {
 41         private string workDate;
 42         public string WorkDate
 43         {
 44             get { return workDate; }
 45             set { workDate = value; }
 46         }
 47         private string company;
 48         public string Company
 49         {
 50             get { return company; }
 51             set { company = value; }
 52         }
 53         public Object Clone()
 54         {
 55             return (object)this.MemberwiseClone();
 56         }
 57     }
 58     class Resume : ICloneable
 59     {
 60         private string name;
 61         private string sex;
 62         private string age;
 63         private WorkExperience work;
 64         
 65         public Resume(string name)
 66         {
 67             this.name = name;
 68             work = new WorkExperience();
 69         }
 70         private Resume(WorkExperience work)
 71         {
 72             this.work = (WorkExperience)work.Clone();
 73         }
 74         
 75         public void SetPersonalInfo(string sex, string age)
 76         {
 77             this.sex = sex;
 78             this.age = age;
 79         }
 80         public void SetWorkExperience(string workDate, string company)
 81         {
 82             work.WorkDate = workDate;
 83             work.Company = company;
 84         }
 85         
 86         public void Display()
 87         {
 88             Console.WriteLine("{0} {1} {2}", name, sex, age);
 89             Console.WriteLine("工作经历: {0} {1}", work.WorkDate, work.Company);
 90         }
 91         public object Clone()
 92         {
 93             Resume obj = new Resume(this.work);
 94             obj.name = this.name;
 95             obj.sex = this.sex;
 96             obj.age = this.age;
 97             return obj;
 98         }
 99     }
100 }
复制代码

目录
相关文章
|
2月前
|
设计模式 Java 关系型数据库
23种设计模式 —— 原型模式【克隆羊、浅拷贝、深拷贝】
23种设计模式 —— 原型模式【克隆羊、浅拷贝、深拷贝】
38 1
|
8月前
|
设计模式
2023-6-14-第五式原型模式
2023-6-14-第五式原型模式
44 0
|
8月前
|
设计模式 Java Spring
设计模式之原型模式(Cloneable接口、浅拷贝、深拷贝)
设计模式之原型模式(Cloneable接口、浅拷贝、深拷贝)
50 0
|
9月前
|
设计模式 Java 关系型数据库
原型模式解读
原型模式解读
|
10月前
|
C++
C++类与对象中深拷贝与浅拷贝
C++类与对象中深拷贝与浅拷贝
47 0
|
存储 Java fastjson
简单理解浅克隆和深克隆
简单理解浅克隆和深克隆
169 0
简单理解浅克隆和深克隆
|
设计模式 C++
再会原型模式——深复制VS浅复制
再会原型模式——深复制VS浅复制
75 0
再会原型模式——深复制VS浅复制
|
C# C++
深复制VS浅复制
深复制VS浅复制
68 0
深复制VS浅复制
原型模式必知必会
原型模式必知必会
原型模式必知必会
|
设计模式 JSON JavaScript
我学会了,原型模式
原型模式属于创建型模式,这个类型的设计模式是将 对象的创建和使用解耦了,花式的去创建对象。
124 0
我学会了,原型模式

热门文章

最新文章