原型模式(prototype),用原型例項制定建立物件的種類,並通過拷貝這些原型建立新的物件。
淺複製**:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace 原型模式
set
}private string company;
public string company
set }}
class resume : icloneable
public void setpersonalinfo(string ***, string age)
public void setworkexperience(string workdate, string company)
public void display()
,,",name,***,age);
console.writeline("工作經歷 ,",work.workdate,work.company);
}public object clone()
}class program}}
執行結果:
因為 工作經歷是通過淺複製過去的,所以在顯示的時候,系統顯示了最後一次修改的結果。
淺複製: 被複製物件的所有變數都含有與原來物件相同的值,並且有的對奇台的物件的引用都仍然指向原來的物件
深複製:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace 原型模式
set
}private string company;
public string company
set
}public object clone()
}class resume : icloneable
private resume(workexperience work) //轉殖工作經歷
public void setpersonalinfo(string ***, string age)
public void setworkexperience(string workdate, string company)
public void display()
,,",name,***,age);
console.writeline("工作經歷 ,",work.workdate,work.company);
}public object clone()
}class program}}
執行結果:
深複製:把引用物件的變數指標指向賦值過的新物件,而不是原有的被引用的物件。
它主要面對的問題是:「某些結構複雜的物件」的建立工作;由於需求的變化,這些物件經常面臨著劇烈的變化,但是他們卻擁有比較穩定一致的介面。
C 原型模式
原型模式和建造者模式 工廠方法模式一樣,都屬於建立型模式的一種。簡單的來說,我們使用原型模式,就是為了建立物件。但是,在以下場景下,使用原型模式是最好的選擇 1.當我們的物件型別不是開始就能確定的,而這個型別是在執行期確定的話,那麼我們通過這個型別的物件轉殖出乙個新的物件比較容易一些 2.有的時候,...
C 設計模式 原型模式
定義 用原型 prototype 例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。結構 理解 1.prototype 是原型基類,提供clone 純虛方法,它根據不同的派生類來轉殖不同的物件。2.concreteprototype 是原型具體類。實現clone 方法,轉殖自己,返回轉殖後的...
c 設計模式(原型模式)
good 從乙個物件再建立另外乙個可定製的物件,而無需知道任何建立的細節。並能提高建立的效能。說白了就copy技術,把乙個物件完整的copy出乙份。例 include include include using namespace std class prototype 抽象基類 prototype...