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 }
复制代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python flask框架教程_Flask框架从入门到实战

Flask简介:Flask是一个使用 Python 编写的轻量级 Web 应用框架,基于 WerkzeugWSGI工具箱和 Jinja2模板引擎。使用 BSD 授权。Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使…

iphone开发中数据持久化之——属性列表序列化(一)

数据持久化是应用程序开发过程中的一个基本问题,对应用程序中的数据进行持久化存储,有多重不同的形式。本系列文章将介绍在iphone开发过程中数据持久化的三种主要形式,分别是属性列表序列号、对象归档化以及iphone的嵌入式关系数据库SQLite。…

对话jQuery之父John Resig:JavaScript的开发之路

在参加完CSDN组织的TUP对话大师系列演讲活动后,27岁的jQuery之父John Resig接受了本刊总编刘江的深度访谈,这篇对话文章,让我们一窥这位著名程序员的人生及技术感悟。 编程初体验 《程序员》:你是如何开始编程的? John…

互联网产品研发的典型流程

这张图是互联网产品研发的一种最佳实践,这张图中没有包含异常流的处理。通常异常出现在进入开发甚至测试阶段了还在变更需求,进入封版发版阶段了还在修改代码,所以在这两个时间点都有需求冻结和代码冻结。 转载于:https://www.cnblogs.com/mo…

vscode 预览图片 插件_真的动手写的VSCode的插件(图片浏览)之1

由于本职工作中经常做图像处理,于时大量的图片浏览是不可避免的。怎么样不离开最近经常使用的VSCode,同时去看大量的图像对我来讲就是个不错的需求,尤其是某个目录下的文件。先谈基本的需求吧,显示一个目标下的所有图像&#xff0…

四十三 常用内建模块 base64

Base64是一种用64个字符来表示任意二进制数据的方法。 用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据&#…

Spring中IoC的入门实例[转]

Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用。这一章先从Spring的IoC开始。所谓IoC就是一个用XML来定义生成对象的模式,我们看看如果来使用的。  数据模型  1、如下图所示有三个类,Human(人…

方向gravity_逆转重力方向,更加自由翱翔——GNZ48 - 《gravity》

第二期给大家带来的这首歌出自GNZ48 第二套原创公演《双面偶像》,也是GNZ48 team g 在这套公演中的队歌,一首气势恢宏的歌曲。开头的小提琴就带入我们进入了一种紧张的情绪,随着第一个鼓点敲下,歌词也渐渐揭开面纱:“泥…

06-BCD计数器设计与应用——小梅哥FPGA设计思想与验证方法视频教程配套文档

芯航线——普利斯队长精心奉献 实验目的:1.掌握BCD码的原理、分类以及优缺点 2.设计一个多位的8421码计数器并进行验证 3.学会基本的错误定位以及修改能力 实验平台:无 实验原理: BCD码(Binary-Coded Decimal)又…

Flash基本工具练习

练习一、按钮 练习二、卡通脸 练习三、图标 转载于:https://www.cnblogs.com/staceydesign/p/3313229.html

mysql_query 资源标识符_借助PHP的mysql_query()函数来创建MySQL数据库的教程

以mysql_query()函数作为教程的基础前提,我们先来看一下mysql_query()的用法:mysql_query()函数PHP MySQL 函数库中,mysql_query() 函数用于向 MySQL 发送并执行 SQL 语句。对于没有数据返回结果集的 SQL ,如 UPDATE、DELETE 等在…

ios PNG Crush error (PNG图片错误)

我是这么解决的: I had the same problem. How to fix : Open up image with Preview -> File > Export > Format change to PNG and you are done 其他被采纳的方法: 12 Answers activeoldestvotes up vote41down voteaccepted Did you check …

设计模式之十(外观模式)

前言 外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一系统更加容易使用. 结构图 SubSystem Class 子系统类集合 实现子系统的功能,处理Facade对象指派的任务,注意子类中没有Facade的任何信息,即…

sunday java_Sunday算法:最快的字符串匹配算法

之前被KMP的next数组搞的头昏脑胀说不上也是比较烦人的,今天看到还有这么有趣而且高效的算法(比KMP还快),看来有必要做一点笔记了Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配算法,其简单、快速的特点非常好!思路其核…

小波分析实验: 实验1 连续小波变换

实验目的: 在理解连续小波变换原理的基础上,通过编程实现对一维信号进行连续小波变换,(实验中采用的是墨西哥帽小波),从而对连续小波变换增加了理性和感性的认识,并能提高编程能力,为…

java axmlprinter_安卓xml配置文件解析工具-AXMLPrinter2.jar(androidmanifest.xml 反编译)下载官方最新版-西西软件下载...

AXMLPrinter2.jar apk分析APK文件,取得APK文件中的 包名、版本号及图标,很强大的工具,再一次感受到了批处理的牛逼。可以将android安卓编译过的二进制XML文件(binary xml file)反编译明文输出保存。是apk反编译修改的必备工具之一。例如需要查…

UML用例图说明

转自:http://www.360doc.com/content/10/1206/23/3123_75672033.shtml 前些时间参加了潘加宇老师的技术讲座,UML建模技术受益匪浅。我也把平时的一些积累和上次的收获总结在这篇文章中,主要讲解用例图相关的知识。 用例图是软件需求分析…

Android 布局学习之——Layout(布局)详解一

layout(布局)定义了用户界面的可视化结构(visual structure),如Activity的UI,应用窗口的UI。 有两种方式声明layout: 1.在xml文件中声明UI组件。 2.在运行时,实例化布局元素。我们可以以编码的方式创建View或ViewGroup…

Week1 Team Homework #2 Introduction of team member with photos

小组成员介绍 组长:黄剑锟 11061164 组员:顾泽鹏 11061160 组员:周辰光 11061154 组员:龚少波 11061167 组员:赵骞 11061155 组员:孙时 11061146 组员&am…

inttostr java_Delphi和Java实现webservice架构

Webservice现在已经不是什么新技术了,用java建立webservice是快捷的,但是用java在制作客户端的感觉上总是不如 Delphi的(个人感觉,java高手们不要笑话我),那我们就用java实现webservice的服务端程序,delphi制作客户端。…