第09章簡歷影印--原型模式
9.2 簡歷**初步實現
//簡歷
class resume
//設定個人資訊
public void setpersonalinfo(string ***, string age)
//設定工作經歷
public void setworkexperience(string timearea,string company)
//顯示
public void display()
」,name,***,age);
console.writeline(「工作經歷: 」,timearea, company);}}
客戶端呼叫**
static void main(string args)
9.3 原型模式
原型模式(prototype),用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
原型模式其實就是從乙個物件再建立另外乙個物件,而且不需要知道任何建立的細節。
原型類abstract class prototype
public string id
}public abstract prototype clone();
}具體原型類
class concreteprototype1 : prototype
public override prototype clone()
}客戶端**
static void main(string args)
」, c1.id);
console.read();
}9.4 簡歷的原型實現
//簡歷
class resume : icloneable
//設定個人資訊
public void setpersonlinfo(string ***, string age)
//設定工作經歷
public void setworkexperience(string timearea,string company)
//顯示
public void display()
」,name,***,age);
console.writeline(「工作經歷:{0}
{1}」, timearea,company);
}public object clone()
}客戶端呼叫**
static void main(string args)
9.5 淺複製與深複製
memberwiseclone()方法是這樣的:如果欄位是值型別的,則該字段逐位複製,如果欄位時引用型別,則複製引用但不複製應用的物件:因此,原始物件及其複本引用同乙個物件。
《大話設計模式》 簡歷影印 原型模式 9
p 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。原形模式其實就是從乙個物件再建立另外乙個可定製的物件,而且不需要知道任何建立的細節。在.net中,抽象類prototype是用不著的,在system命名空間中提供了icloneable介面,其中就是唯一乙個方法是clone 只要實現...
大話設計模式九 原型模式(簡歷影印)
淺複製 被複製物件的所有變數都含有與原來的物件相同的值,而所有的其它物件的引用都仍然指向原來的物件。工作經歷類 public class workexperience public void setworkdate string workdate public string getcompany p...
設計模式 原型模式(C ) 簡歷影印
原型模式就是讓物件擁有自我拷貝的功能,方便備份物件資料或者建立物件時設定過多的引數。include include using namespace std class prototype class resume public prototype virtual void setpersonalin...