原型模式是指將類設(shè)計(jì)成可復(fù)制(克隆)類型,繼承Cloneable類,在調(diào)用時(shí)就可以直接通過clone()方法克隆已有對(duì)象生成新的對(duì)象。其優(yōu)點(diǎn)是使用clone()方法創(chuàng)建新對(duì)象時(shí)消耗的資源比使用new方法創(chuàng)建新對(duì)象時(shí)消耗的資源要少,因此采用原型方法可以提高性能,減少消耗。
以下一個(gè)實(shí)例說明原型模式的使用方法,如圖創(chuàng)建各類。PrototypeCapable接口類繼承Cloneable類,而Movie和show這兩個(gè)類實(shí)現(xiàn)PrototypeCapable接口,是具體的可復(fù)制原型類型。
PrototypeCapable接口類:
package prototype;
public interface PrototypeCapable extends Cloneable{
PrototypeCapable clone() throws CloneNotSupportedException;
}
Movie具體原型類:
package prototype;
public class Movie implements PrototypeCapable{
@Override
public Movie clone() throws CloneNotSupportedException{
System.out.println(this);
return (Movie)super.clone(); //返回超類的克隆
}
}
Show具體原型類:
package prototype;
public class Show implements PrototypeCapable{
@Override
public Show clone() throws CloneNotSupportedException{
System.out.println(this);
return (Show)super.clone(); //返回超類的克隆
}
}
主函數(shù)調(diào)用方式:
package main;
import prototype.*;
public class ProtoType {
public static void main(String[] args) throws CloneNotSupportedException {
//電影類原型
Movie moviePrototype = new Movie();
//克隆電影類原型
Movie movie = moviePrototype.clone();
System.out.println(moviePrototype);
System.out.println(movie);
//演出類原型
Show showPrototype = new Show();
//克隆演出類原型
Show show = showPrototype.clone();
System.out.println(showPrototype);
System.out.println(show);
}
}
-
Cyclone
+關(guān)注
關(guān)注
0文章
54瀏覽量
30418 -
protothread
+關(guān)注
關(guān)注
1文章
3瀏覽量
2102
發(fā)布評(píng)論請(qǐng)先 登錄
JavaScript中的Object
pspice的使用方法說明
什么是菊花鏈模式 星型模式
基于施耐德PLC編程軟件Unity Poxl 3.0使用方法

設(shè)計(jì)模式之結(jié)構(gòu)型模式

嵌入式 C 語言之原型模式應(yīng)用
設(shè)計(jì)模式創(chuàng)造性:原型模式

各類設(shè)計(jì)模式及實(shí)現(xiàn)

評(píng)論