定義:
用原型實例指定創建物件的種類,並且通過拷貝這些原型創建新的物件。
Prototype 模式允許一個物件再創建另外一個可定制的物件,根本無需知道任何如何創建的細節,工作原理是:通過將一個原型物件傳給那個要發動創建的物件,這個要發動創建的物件通過請求原型物件拷貝它們自己來實施創建。
如何使用?
因為 Java 中提供的 clone() 方法來實現物件的克隆(具體瞭解clone()按這裏),所以 Prototype 模式實現一下子變得很簡單。
以勺子為例:
public abstract class AbstractSpoon implements Cloneable { String spoonName;
public void setSpoonName(String spoonName) {this.spoonName = spoonName;} public String getSpoonName() {return this.spoonName;}
public Object clone() { Object object = null; try { object = super.clone(); } catch (CloneNotSupportedException exception) { System.err.println("AbstractSpoon is not Cloneable"); } return object; } } |
有兩個具體實現(ConcretePrototype):
public class SoupSpoon extends AbstractSpoon { public SoupSpoon() { setSpoonName("Soup Spoon"); } } public class SaladSpoon extends AbstractSpoon { public SaladSpoon() { setSpoonName("Salad Spoon"); } } |
運用 Prototype 模式很簡單:
AbstractSpoon spoon = new SoupSpoon();
AbstractSpoon spoon = new SaladSpoon();
當然也可以結合工廠模式來創建 AbstractSpoon 實例。
在 Java 中 Prototype 模式變成 clone() 方法的使用,由於 Java 純潔的物件導向特性,使得在 Java 中使用設計模式變得很自然,兩者已經幾乎是渾然一體了。這反映在很多模式上,如 Interator 遍歷模式。
分享到:
相关推荐
主要为大家详细介绍了Java设计模式之Prototype原型模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。...
NULL 博文链接:https://wy649898543.iteye.com/blog/1431591
设计模式C++学习之原型模式(Prototype)
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/1032892
IOS设计模式浅析之原型模式(Prototype)--copy - iOS知识库1
设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator...
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) 体验课程
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) (Level 300)
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式)
设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator...
设计模式之原型模式prototype有更多需要请联系我wyb_jany@126.com
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第6节:Prototype...
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第6节:Prototype...
├─第一章 旭瑶-小滴...│ 5.1-创建型设计模式-Prototype原型设计模式实战《上》.mp4 │ 5.2-创建型设计模式-Prototype原型设计模式实战《下》.mp4 │ 6.1-接口之间的桥梁-适配器设计模式你知道多少.mp4 │ 6.4
创建模式:设计模式之Factory,设计模式之Prototype(原型),设计模式之Builder,设计模式之Singleton(单态). 结构模式:设计模式之Facade(外观),设计模式之Proxy(代理),设计模式之Adapter(适配器),设计模式之Composite...
一个原型设计模式的应用案例,C#语言编写,有助于设计模式的理解和学以致用。
java设计模式之原型模式,希望对大家有所帮助。