1. 程式人生 > >4.java設計模式-原型模式(prototype)

4.java設計模式-原型模式(prototype)

在《JAVA與模式》一書中開頭是這樣描述原型(Prototype)模式的:

  原型模式屬於物件的建立模式。通過給出一個原型物件來指明所有建立的物件的型別,然後用複製這個原型物件的辦法創建出更多同類型的物件。這就是選型模式的用意。


1.原型模式的結構

  原型模式要求物件實現一個可以“克隆”自身的介面,這樣就可以通過複製一個例項物件本身來建立一個新的例項。這樣一來,通過原型例項建立新的物件,就不再需要關心這個例項本身的型別,只要實現了克隆自身的方法,就可以通過這個方法來獲取新的物件,而無須再去通過new來建立。

原型模式有兩種表現形式:(1)簡單形式、(2)登記形式,這兩種表現形式僅僅是原型模式的不同實現。

1. 簡單形式的原型模式

 

這種形式涉及到三個角色:

(1)客戶(Client)角色:客戶類提出建立物件的請求。

(2)抽象原型(Prototype)角色:這是一個抽象角色,通常由一個Java介面或Java抽象類實現。此角色給出所有的具體原型類所需的介面。

(3)具體原型(Concrete Prototype)角色:被複制的物件。此角色需要實現抽象的原型角色所要求的介面。