- 浏览: 20316 次
- 性别:
- 来自: 武汉
最新评论
定义:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
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遍历模式。
进入论坛讨论
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
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遍历模式。
进入论坛讨论
发表评论
-
设计模式之Visitor
2011-10-11 15:24 859Visitor定义 作用于某个对象群中各个对象的操作. 它可以 ... -
设计模式之Template
2011-10-11 14:53 641Template定义: 定义一个操 ... -
设计模式之Strategy(策略)
2011-10-11 14:42 622Strategy是属于设计模式中 对象行为型模式,主要是定义一 ... -
设计模式之State
2011-10-10 10:02 748State的定义: 不同的状态 ... -
设计模式之Singleton(单态)
2011-10-10 09:24 766定义: Singleton模式主要作用是保证在Java应用程序 ... -
设计模式之Proxy(代理)
2011-10-10 09:11 720理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在 ... -
设计模式之Observer
2011-10-09 14:47 628Java深入到一定程度,就 ... -
设计模式之Memento(备忘机制)
2011-10-09 14:30 694Memento定义: memento是一个保存另外一个对象内部 ... -
设计模式之Mediator(中介者)
2011-10-09 14:23 719Mediator定义: 用一个中介 ... -
设计模式之Interpreter(解释器)
2011-10-09 09:45 881Interpreter定义: 定义语言的文法 ,并且建立一个解 ... -
设计模式之Flyweight(享元)
2011-10-08 17:35 651Flyweight定义: 避免大量拥有相同内容的小类的开销(如 ... -
设计模式之Factory
2011-10-08 17:15 695定义:提供创建对象的接 ... -
设计模式之Facade(外观)
2011-09-30 10:17 737Facade的定义: 为子系统中的一组接口提供一个一致的界面. ... -
设计模式之Decorator(油漆工)
2011-09-30 10:10 569Decorator常被翻译成" ... -
设计模式之Composite(组合)
2011-09-30 10:10 702Composite定义: 将对象以树形结构组织起来,以达成“部 ... -
设计模式之Command
2011-09-29 14:53 646Command模式是最让我疑惑的一个模式,我在阅读了很多代码后 ... -
设计模式之Chain of Responsibility(职责链)
2011-09-29 14:36 697Chain of Responsibility定义 Chain ... -
设计模式之Builder
2011-09-29 14:08 684Builder模式定义: 将一个复杂对象的构建与它的表示分离, ... -
设计模式之Bridge
2011-09-29 13:58 657Bridge定义 : 将抽象和行 ... -
设计模式之Adapter(适配器)
2011-09-29 13:25 683定义: 将两个不兼容的 ...
相关推荐
主要为大家详细介绍了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设计模式之原型模式,希望对大家有所帮助。