原型模式(prototype),用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
原型模式其實就是從乙個物件再建立另外乙個可定製的物件,而且不需要知道任何建立的細節。
一般在初始化的資訊不發生變化的情況下,轉殖是最好的辦法。這既隱藏了物件建立的細節,又對效能是大大的提高。
淺複製:被複製物件的所有變數都含有與原來的物件相同的值,而所有的其它物件的引用都仍然指向原來的物件。
深複製:把所有引用物件的變數指向複製過的新物件,而不是原有的被引用物件。
memberwiseclone()方法是這樣的,如果欄位是值型別的,則對該字段執行逐位複製;如果欄位是引用型別,則複製引用但不複製引用的物件;因此,原始物件及其複本引用同一物件。
c++裡貌似沒有memberwiseclone()。
貼一段原型模式的基本**:
原型類中宣告乙個抽象的轉殖方法,具體原型裡面進行事先,可惜c++沒這個方法
大話設計模式九 原型模式(簡歷影印)
淺複製 被複製物件的所有變數都含有與原來的物件相同的值,而所有的其它物件的引用都仍然指向原來的物件。工作經歷類 public class workexperience public void setworkdate string workdate public string getcompany p...
設計模式(九)原型模式 Prototype
1.介紹 作用 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。其中有乙個詞很重要,那就是拷貝 深拷貝 可以說,拷貝是原型模式的精髓所在。2.應用場景 示例1 找工作的時候,我們需要準備簡歷。假設沒有列印裝置,因此需手寫簡歷,這些簡歷的內容都是一樣的。這樣有個缺陷,如果要修改簡歷中的...
PHP設計模式 九 原型設計模式
在php設計模式 八 工廠模式中我們介紹了建立設計模式 creation patterns 中的工廠模式,下面我們將介紹另一種原型設計模式 prototype method 在php中,原型設計模式依靠cloning複製物件來實現。通過cloning構造的物件,將大量節省新物件的構造時間。簡單來說,...