首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

原形模式 [取自wikipedia]

2012-07-01 
原型模式 [取自wikipedia]原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的

原型模式 [取自wikipedia]
原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。

原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。

/** Prototype Class **/public class Cookie implements Cloneable {     public Object clone()   {       try{           //In an actual implementation of this pattern you would now attach references to           //the expensive to produce parts from the copies that are held inside the prototype.           return this.getClass().newInstance();       }       catch(InstantiationException e)       {          e.printStackTrace();          return null;       }   }}/** Concrete Prototypes to clone **/public class CoconutCookie extends Cookie { }/** Client Class**/public class CookieMachine{  private Cookie cookie;//cookie必须是可复制的    public CookieMachine(Cookie cookie) {         this.cookie = cookie;     }     public Cookie makeCookie() {       return (Cookie)cookie.clone();     }     public Object clone() { }     public static void main(String args[]){         Cookie tempCookie =  null;         Cookie prot = new CoconutCookie();         CookieMachine cm = new CookieMachine(prot); //设置原型        for(int i=0; i<100; i++)             tempCookie = cm.makeCookie();//通过复制原型返回多个cookie     } }

热点排行