設計模式之Prototype(原型)
板橋里人 http://www.jdon.com
模式實(shí)戰書(shū)籍《Java實(shí)用系統開(kāi)發(fā)指南》
原型模式定義:
用原型實(shí)例指定創(chuàng )建對象的種類(lèi),并且通過(guò)拷貝這些原型創(chuàng )建新的對象.
Prototype模式允許一個(gè)對象再創(chuàng )建另外一個(gè)可定制的對象,根本無(wú)需知道任何如何創(chuàng )建的細節,工作原理是:通過(guò)將一個(gè)原型對象傳給那個(gè)要發(fā)動(dòng)創(chuàng )建的對象,這個(gè)要發(fā)動(dòng)創(chuàng )建的對象通過(guò)請求原型對象拷貝它們自己來(lái)實(shí)施創(chuàng )建。
如何使用?
因為Java中的提供clone()方法來(lái)實(shí)現對象的克隆,所以Prototype模式實(shí)現一下子變得很簡(jiǎn)單.
以勺子為例:
| public abstract class AbstractSpoon implements Cloneable |
有個(gè)具體實(shí)現(ConcretePrototype):
| public class SoupSpoon extends AbstractSpoon |
調用Prototype模式很簡(jiǎn)單:
AbstractSpoon spoon = new SoupSpoon();
AbstractSpoon spoon2 = spoon.clone();
當然也可以結合工廠(chǎng)模式來(lái)創(chuàng )建AbstractSpoon實(shí)例。
在Java中Prototype模式變成clone()方法的使用,由于Java的純潔的面向對象特性,使得在Java中使用設計模式變得很自然,兩者已經(jīng)幾乎是渾然一體了。這反映在很多模式上,如Interator遍歷模式。
聯(lián)系客服