C 原型模式

2021-08-19 11:47:29 字數 1872 閱讀 2738

原型模式(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...