fbpx
维基百科

原型模式

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

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

结构 编辑

 
描述原型设计模式的UML类图

实现 编辑

Java 编辑

 /** Prototype Class **/  public class Cookie implements Cloneable {    public Object clone() throws CloneNotSupportedException  {  //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 (Cookie) super.clone();  }  }    /** 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()  {  try  {  return (Cookie) cookie.clone();  } catch (CloneNotSupportedException e)  {  e.printStackTrace();  }  return null;  }     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   }   } 


引用 编辑

来源 编辑

  • Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. 1994. ISBN 0-201-63361-2. 

参见 编辑

外部链接 编辑


原型模式, 关于与, 標題相近或相同的条目页, 請見, 基于原型编程, 是创建型模式的一种, 其特点在于通过, 复制, 一个已经存在的实例来返回新的实例, 而不是新建实例, 被复制的实例就是我们所称的, 原型, 这个原型是可定制的, 多用于创建复杂的或者耗时的实例, 因为这种情况下, 复制一个已经存在的实例使程序运行更高效, 或者创建值相等, 只是命名不一样的同类数据, 目录, 结构, 实现, java, 引用, 来源, 参见, 外部链接结构, 编辑, nbsp, 描述原型设计模式的uml类图实现, 编辑java,. 关于与 原型模式 標題相近或相同的条目页 請見 基于原型编程 原型模式是创建型模式的一种 其特点在于通过 复制 一个已经存在的实例来返回新的实例 而不是新建实例 被复制的实例就是我们所称的 原型 这个原型是可定制的 原型模式多用于创建复杂的或者耗时的实例 因为这种情况下 复制一个已经存在的实例使程序运行更高效 或者创建值相等 只是命名不一样的同类数据 目录 1 结构 2 实现 2 1 Java 3 引用 4 来源 5 参见 6 外部链接结构 编辑 nbsp 描述原型设计模式的UML类图实现 编辑Java 编辑 Prototype Class public class Cookie implements Cloneable public Object clone throws CloneNotSupportedException 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 Cookie super clone 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 try return Cookie cookie clone catch CloneNotSupportedException e e printStackTrace return null public static void main String args Cookie tempCookie null Cookie prot new CoconutCookie CookieMachine cm new CookieMachine prot 设置原型 for int i 0 i lt 100 i tempCookie cm makeCookie 通过复制原型返回多个cookie 引用 编辑来源 编辑Gamma Erich Helm Richard Johnson Ralph Vlissides John Design Patterns Elements of Reusable Object Oriented Software Addison Wesley 1994 ISBN 0 201 63361 2 参见 编辑 nbsp 維基教科書中的相關電子教程 Prototype 函数原型外部链接 编辑The Design Patterns Memory 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 原型模式 amp oldid 67208500, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。