1、原始模型设计模式 通过给出一个原始对象来指明要创建的对象的类型,然后用复制这个对象的原型来创建更多的同类型的对象,缺点是每一个需要被复制的类都必须提供一个克隆的方法,克隆还分深度克隆和浅克隆。
2、uml图如下
3、java代码如下
public class Manager {
private Hashtable<String, Product> hashtables = new Hashtable<String, Product>();
public void register(String productName, Product product) {
hashtables.put(productName, product);
}
public Product createClone(String productName) {
Product product = hashtables.get(productName);
return product.createClone();
}
}
public interface Product extends Cloneable{
public void use();
public Product createClone();
}
public class MessageBox implements Product{
public Product createClone() {
try {
return (Product) this.clone();
} catch (CloneNotSupportedException e) {
return null;
}
}
public void use() {
System.out.println("********");
}
}
public class UnderLinePen implements Product{
public Product createClone() {
try {
return (Product) this.clone();
} catch (CloneNotSupportedException e) {
return null;
}
}
public void use() {
System.out.println("____________");
}
}
public class Main {
public static void main(String[] args) {
Manager manager = new Manager();
Product p1 = new UnderLinePen();
Product p2 = new MessageBox();
manager.register("p1", p1);
manager.register("p2", p2);
manager.createClone("p1").use();
manager.createClone("p2").use();
}
}
分享到:
相关推荐
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/1032892
├─第一章 旭瑶-小滴...│ 5.1-创建型设计模式-Prototype原型设计模式实战《上》.mp4 │ 5.2-创建型设计模式-Prototype原型设计模式实战《下》.mp4 │ 6.1-接口之间的桥梁-适配器设计模式你知道多少.mp4 │ 6.4
Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。...
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) 体验课程
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) (Level 300)
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式)
设计模式C++学习之原型模式(Prototype)
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第6节:Prototype...
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第6节:Prototype...
NULL 博文链接:https://wy649898543.iteye.com/blog/1431591
设计模式之原型模式prototype有更多需要请联系我wyb_jany@126.com
主要为大家详细介绍了Java设计模式之Prototype原型模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator...
一个原型设计模式的应用案例,C#语言编写,有助于设计模式的理解和学以致用。
IOS设计模式浅析之原型模式(Prototype)--copy - iOS知识库1
主要介绍了设计模式中的Prototype原型模式及在C++中的使用,需要的朋友可以参考下
设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator...
这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高...