原型模式:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
3.1 基類需要實現cloneable介面:
/**
* created by ljw on 2019/3/12.
* 原型模式
* 原型模式也是拷貝模式,就是在記憶體中拷貝原型物件來建立乙個跟原型物件一模一樣的新物件。
* 原型模式的實質就是擴充套件使用clone方法。
*/public class worddocument implements cloneable
private string mtext;
private arraylistmicon = new arraylist<>();
@override
protected worddocument clone() throws clonenotsupportedexception
public string getmtext()
public void setmtext(string mtext)
public arraylistgetmicon()
public void addicon(string icon)
public void showdocument()
system.out.println("----------- word content end -----------");}}
3.2 測試**:
/**
* created by ljw on 2019/3/12.
*/public class clienttest catch (clonenotsupportedexception e)
origdocument.showdocument();}}
3.3 執行結果:
----------- word content start -----------
text : 第一篇文件
images list:
image name : 一
image name : 二
image name : 三
----------- word content end -----------
----------- word content start -----------
text : 我修改了內容
images list:
image name : 一
image name : 二
image name : 三
----------- word content end -----------
----------- word content start -----------
text : 第一篇文件
images list:
image name : 一
image name : 二
image name : 三
----------- word content end -----------
4.1 淺轉殖
4.2 深轉殖
修改**如下:
@override
protected worddocument clone() throws clonenotsupportedexception
設計模式學習(1) 原型模式
先來個原型設計模式的個人理解 屬於建立型設計模式 單例模式singleton 建造者模式builder 工廠模式factory 原型模式prototype 的一種。其中單例 建造者 工廠模式後面學習。原型模式其實就是複製產生物件。和new出物件比起來。效能更好,所以用得也比較廣泛。實現方式就是實現c...
設計 原型模式
public abstract class lidarbase public lidarbase string id public abstract lidarbase clone class concreteprototype lidarbase public override lidarbase...
設計模式 原型模式
1.首先分析原型模式的由來 一般來說,建立乙個物件可以由以下方法 知道物件的具體型別,直接用new生成。不知道型號,知道相應的需求,可以使用工廠方法模式。根據乙個已有的物件來複製為乙個新的物件,可以使用原型模式。2.原型模式可以簡單理解為拷貝原型物件得到新的物件。想象乙個配鑰匙的小店,給店主乙個原有...