Sepcify the kinds ofobject to create using a prototypical instanc,and create new objects by copying this prototype.java
用原型實例指定建立對象的種類,而且經過拷貝這些原型建立新的對象。設計模式
通俗理解:原型模式就是克隆一個已有的對象安全
package PrototypePattern; public class PrototypeClass implements Cloneable{ @Override protected PrototypeClass clone(){ PrototypeClass prototypeClass = null; try { prototypeClass = (PrototypeClass)super.clone(); } catch (CloneNotSupportedException e) { // TODO Auto-generated catch block e.printStackTrace(); } return prototypeClass; } }
客戶端:ide
package PrototypePattern; public class Client { public static void main(String[] args) { PrototypeClass obj1 = new PrototypeClass(); PrototypeClass obj2 = obj1.clone(); System.out.println(obj1); System.out.println(obj2); } }
性能優良:是內存二進制流的拷貝,比直接new一個對象性能好不少函數
避免構造函數的約束性能
資源優化場景:優化
性能和安全要求的場景this
一個基本對象多個修改者的場景spa
構造函數不會被執行prototype
淺拷貝和深拷貝
clone和final的衝突
機械工業出版社 《設計模式之禪》 秦小波著