// 简历
class Resume : ICloneable {
private string name;
private string sex;
private string timeArea;
private string company;
public Resume(string name) {
this.name = name;
}
public void SetPersonalInfo(string sex,string age) {
this.sex = sex;
this.age = age;
}
public void SetWorkExperience(string timeArea,string company) {
this.timeArea = timeArea;
this.company = company;
}
public void Display() {
Console.WriteLine("{0} {1} {2}",name,sex,age);
Console.WriteLine("工作经历: {0} {1}",timeArea,company);
}
public Object Clone() {
return (Object)this.MemberwiseClone();
}
}
//客户端
static void Main(string[] args) {
Resume a = new Resume("大鸟");
a.setPersonalInfo("男","29");
a.setWorkExperience("1998-2000","xx公司");
Resume b = (Resume) a.Clone();
b.setWorkExperience("2000-2006","yy公司");
a.Display();
b.Display();
Console.Read();
}
浅复制与深复制
模板模式:
是通过把不变行为搬移到超类,去除子类重复代码来体现他的优势,模板方法模式提供一个很好的代码重用平台
迪米特法则:
如果两个类不彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另外一个类的话,可以通过第三者转发这个调用。