設計模式 6 原型模式

2021-08-09 02:14:54 字數 1279 閱讀 2380

有時需要生成多個相同的物件,最普通的方法就是就是用相同的屬性new相同的物件:

public class main 

}class chicken

}

這樣做的缺點是,如果需要修改乙個屬性,其他物件的屬性就要跟著改一遍,有乙個便捷的方法,就是採用

原型模式,從乙個物件再建立另外乙個可定製的物件,不需要知道任何建立的細節:

public class main 

}class chicken implements cloneable

@override

public string tostring() ';

}@override

protected object clone() throws clonenotsupportedexception

}

通過重寫object類的clone方法(必須實現cloneable介面,不然會拋

clonenotsupportedexception異常),因為clone是native底層的方法,所以會提高效能,並且當要修改其中一屬性時,只需對其原型物件(chicken1)修改即可,但上述方法只能對物件裡面的值複製,也就是說對於引用型別,上面**的處理是複製其引用,並不會複製引用的具體物件,所以上述方法被稱為

淺轉殖(複製),下面來乙個

深轉殖的例子:

public class main 

}class egg implements cloneable

@override

protected object clone() throws clonenotsupportedexception

public void setname(string name)

public void setage(int age)

@override

public string tostring() ';

}}class chicken implements cloneable

@override

public string tostring() ';

}@override

protected object clone() throws clonenotsupportedexception

public void setegg(egg egg)

}

這次連雞裡的蛋都是整個物件都給複製了(不是引用複製)

設計模式 6 原型模式

1996年7月5日,英國科學家伊恩 威爾穆特博士成功的轉殖出了乙隻小羊,小羊與它的 母親 一模一樣。這只小羊的名字就是dolly。dolly是由 不要認為介紹多莉轉殖的故事和本文牛頭不對馬嘴,事實上多少還是有點關係的。1.什麼是原型模式?原型模式就是用來建立重複的物件,再直白一點 複製貼上的原理。怎...

C 設計模式(6) 原型模式

在軟體系統開發中,有時候會遇到這樣的情況 我們需要用到多個相同例項,最簡單直接的方法是通過多次呼叫new方法來建立相同的例項。如下 person person new person person person2 new person person person3 new person 但是有乙個問題...

設計模式 原型模式

1.首先分析原型模式的由來 一般來說,建立乙個物件可以由以下方法 知道物件的具體型別,直接用new生成。不知道型號,知道相應的需求,可以使用工廠方法模式。根據乙個已有的物件來複製為乙個新的物件,可以使用原型模式。2.原型模式可以簡單理解為拷貝原型物件得到新的物件。想象乙個配鑰匙的小店,給店主乙個原有...