- 浏览: 29439 次
- 性别:
- 来自: 北京
设计模式之Prototype(原型)
定义:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
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-02-26 01:03 700设计模式之Visitor Visitor ... -
模式Template
2011-02-26 01:03 695设计模式之Template Template定义: 定义一个操 ... -
模式Strategy
2011-02-26 01:02 803设计模式之Strategy(策略) ... -
模式State
2011-02-26 01:02 651设计模式之State State的 ... -
模式Singleton
2011-02-26 01:02 724设计模式之Singleton(单态 ... -
模式Proxy
2011-02-26 01:01 657设计模式之Proxy(代理) 理解并使用设计模式,能够培养我们 ... -
模式Observer
2011-02-26 01:00 713设计模式之Observer Java深入到一定程度,就不可避免 ... -
模式Memento
2011-02-26 00:59 705设计模式之Memento(备忘 ... -
模式Mediator
2011-02-26 00:59 770设计模式之Mediator(中介者) Mediator定义: ... -
模式Interpreter
2011-02-26 00:58 804设计模式之Interpreter(解释器) Interpret ... -
模式Flyweight
2011-02-26 00:57 627设计模式之Flyweight(享元) Flyweight定义: ... -
模式Factory
2011-02-26 00:56 642设计模式之Factory 定义:提供创建对象的接口. 为何使用 ... -
模式Facade
2011-02-26 00:55 692设计模式之Facade(外观) Facade的定义: 为子系统 ... -
模式Decorator
2011-02-26 00:54 714设计模式之Decorator(油漆 ... -
模式Command
2011-02-26 00:52 611设计模式之Command Command模式是最让我疑惑的一个 ... -
模式Composite
2011-02-26 00:51 756设计模式之Composite(组合) Composite定义 ... -
模式Chain of Responsibility
2011-02-26 00:49 568设计模式之Chain of Respons ... -
模式Builder
2011-02-26 00:48 635设计模式之Builder Builder ... -
模式Bridge
2011-02-26 00:47 671设计模式之Bridge Bridge定义 : 将抽象和行为划 ... -
模式Adapter
2011-02-26 00:45 654设计模式之Adapter(适配 ...
相关推荐
Prototype模式 即原型模式,提供一个已经存在的对象进行新对象创建的接口,一般情况下都是使用Clone接口。 此模式非常简单,简单的说就是复制多个当前对象供使用。Prototype模式允许一个对象再创建另外一个可定制...
### 原型模式 Prototype Pattern #### 概述 原型模式是一种创建型设计模式,它允许用户通过复制现有的实例来创建新的对象,而不是通过传统的构造器来创建对象。这种模式适用于那些创建对象的成本较高,或者当对象...
**原型设计模式(Prototype Pattern)**是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而不是通过构造函数来实例化新对象。在面向对象编程中,当我们需要频繁地创建具有相同或相似属性的对象时,...
"原型"(Prototype)设计模式是其中的一种,它的主要目标是通过复制现有的对象来创建新的对象,而不是通过构造函数来创建新实例。这种方法尤其适用于当创建新对象的过程复杂或者昂贵时,例如,当对象需要大量初始化...
**原型模式(Prototype)**是软件设计模式中的一种,它属于创建型模式,主要用于简化对象的创建过程,通过复制已有对象来生成新对象,避免了重复的构造过程,提高了代码的效率和可维护性。在Java、C#等面向对象语言...
**原型模式(Prototype Pattern)**是一种创建型设计模式,它提供了一种通过复制已有对象来创建新对象的方式,而不是通过构造函数。在某些情况下,当创建新对象的成本非常高时(例如,对象需要大量的初始化操作或者从...
【PHP原型模式Prototype详解】 原型模式(Prototype)是一种创建型设计模式,它的核心思想是通过复制已有对象来创建新对象,以减少重复的构造过程,提高代码效率。在PHP中,原型模式通常通过对象的克隆(clone)...
**原型模式(Prototype模式)**是软件设计模式中的一个经典模式,属于创建型模式。它提供了一种通过复制现有的对象来创建新对象的方式,而无需知道具体创建过程的细节。这种模式在需要频繁创建相似对象时非常有用,...
Prototype 模式是一种创建型模式,用于创建对象的副本。Prototype 模式的优点是可以快速地创建对象的副本,减少了对象创建的时间和空间开销。Prototype 模式的缺点是它可能会导致对象的耦合度增加。 3. Factory ...
Java设计模式之Prototype原型模式 Prototype原型模式是Java设计模式中的一种创建型模式,它主要用于对象的克隆和创建。该模式的主要思想是将一个对象作为原型,然后通过克隆该对象来创建新的对象,从而实现对象的...
"Prototype(原型模式)"是设计模式中的一种,它的主要思想是通过克隆已有对象来创建新对象,而不是通过传统的方式(如new操作符)来实例化。这样可以提高代码的效率,特别是在需要创建大量相似对象时。 在给定的...
Prototype模式使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这在创建对象的代价较大,或者对象创建需要复杂初始化的情况下非常有用。 ### 结构型模式 #### Bridge模式 Bridge模式将抽象...
Prototype 模式可以使得产品类不需要非得有任何事先确定的等级结构,Prototype 模式适用于任何的等级结构。 例如,在 Prototype 模式的例子中,可以通过复制原型对象来创建出更多同类型的对象,不需要知道产品的...
Prototype模式通过复制已有实例来创建新对象,而不是通过构造函数创建新对象。这在创建复杂对象时可以提高效率,尤其是在构造函数开销大的情况下。 ### 结构型模式 #### 2.1 Bridge模式 Bridge模式将抽象部分与它...
**原型模式(Prototype Pattern)**是一种基于克隆的创建型设计模式,它的主要目的是为了提高创建新对象的效率,特别是当创建新对象的过程复杂或者资源消耗较大时。在原型模式中,一个已经创建的对象(称为原型)被...
"原型"(Prototype)模式是其中的一种行为设计模式,它主要用于简化对象的创建过程,通过复制已有对象来生成新对象,而非每次都创建一个新的实例。这种模式在需要大量相似对象时尤其有效,可以避免重复代码并提高...
**原型模式(Prototype Pattern)**是一种常用的软件设计模式,它的主要思想是通过复制已有对象来创建新的对象,从而减少创建新对象的成本。在Java等面向对象编程语言中,原型模式经常被用来实现对象的克隆。在给定的...
Prototype模式通过克隆现有的实例来创建新的实例,避免了创建新对象时的重复制备过程。这种模式适用于创建对象成本较高或者需要大量实例的情况。 ### 5. Adapter模式 Adapter模式将一个类的接口转换为客户期望的另...