趣味設計模式之原型模式

2021-08-28 20:48:28 字數 1192 閱讀 8127

有一天,八戒問悟空,「大師兄,你怎麼可以拔一搓猴毛就可以生成無數個一摸一樣的你,怎麼那麼神奇?師兄既然是齊天大聖,我老豬有個問題向請教下,在程式設計的世界中,我怎麼可以實現呢?我想在下次的時候也玩一把,這樣我就可以躺著吃喝,不用幹活了,哈哈」

「看你著呆子,平時喜歡偷閒,想不到問了偷懶還能想辦法,孺子可教也,讓師兄給你慢慢道來」

原型模式,其實就是轉殖乙個物件,也是屬於建立型別的,比如乙個物件需要載入很多的資源,如果直接new的話,可能會關聯很多的物件,這樣是不是很麻煩?耗效能一點?那麼有沒有一種方式呢?答案就是原型模式,下面一起看下: 

(1)第一步,建立乙個抽象類(或者普通類也可以),實現cloneable介面,實現clone方法

public abstract class wukong implements cloneable

public void setid(string id)

public string getwho()

public void setwho(string who)

public object clone() throws clonenotsupportedexception

}

(2)第二步,建立子類(為了方便觀察)

public class wukong1 extends wukong

@override

protected void show()

}

public class wukong2 extends wukong

@override

protected void show()

}

(3)第三步,中間站,生產物件的地方

public class clonefactory 

public static void loadwukong()

}

(4)測試效果

public class test 

}

(5)效果

其實大部分的時候我們直接用乙個集合類來儲存,我們需要用到的時候再用就可以了,直接clone也是可以的。

設計模式之原型模式

原型模式其實就是從乙個物件再建立乙個可定製的物件,而且不需要知道建立的細節。具體就是說通過複製或者轉殖乙個原型物件產生新的物件 轉殖物件 分為兩種 深複製或者淺複製,這兩種的主要區別是 在原型中如果有物件的引用,淺複製是將引用複製過來了,也就是淺複製和原型中的物件的引用相同,而深複製是將轉殖物件中引...

設計模式之原型模式

include include 此練習為原型模式方法的練習 原型模式揭示了在同一原型上可以通過複製使得 只需要例項化一次,再通過相應的類函式操作可以得到 同一原型下的不同的版本物件 此練習將考慮在實際開發中 比如 工作經歷也是作為乙個類被含在簡歷類中的情況 這情況將涉及到類的引用和深 淺複製 原型基...

設計模式之原型模式

原型模式的思想就是將乙個物件作為原型,對其進行複製 轉殖,產生乙個和原物件類似的新物件 複製過程可分為淺複製和深複製。淺複製是指直接呼叫父類 即object類 的clone方法 super.clone 該方法是本地 native 方法,呼叫該方法clone出來的新物件,基本資料型別的屬性變數是新建立...