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();
分享到:
相关推荐
本篇文章将深入探讨C#中的“原型模式”(Prototype Pattern),这是一种创建型设计模式,它允许我们通过复制已有对象来创建新对象,而不是从零开始创建。 原型模式的核心思想是克隆。在C#中,对象的克隆可以通过...
原型模式(Prototype Pattern)是一种创建型设计模式,它允许我们通过复制现有的对象来创建新对象,而无需知道具体创建过程的细节。在C#中,原型模式是通过接口或抽象类来实现的,通常涉及`ICloneable`接口或者...
在本课程中,我们将深入探讨C#编程中的一个重要设计模式——Prototype原型模式,它是创建型设计模式的一种。原型模式主要用于简化实例化过程,通过复制已有对象来创建新对象,而不是直接通过构造函数来创建。这一...
**原型模式(Prototype Pattern)**是一种创建型设计模式,它提供了一种通过复制已有对象来创建新对象的方式,而不是通过构造函数。在某些情况下,当创建新对象的成本非常高时(例如,对象需要大量的初始化操作或者从...
Prototype模式 即原型模式,提供一个已经存在的对象进行新对象创建的接口,一般情况下都是使用Clone接口。 此模式非常简单,简单的说就是复制多个当前对象供使用。Prototype模式允许一个对象再创建另外一个可定制...
**原型模式(Prototype模式)**是软件设计模式中的一个经典模式,属于创建型模式。它提供了一种通过复制现有的对象来创建新对象的方式,而无需知道具体创建过程的细节。这种模式在需要频繁创建相似对象时非常有用,...
(100%) 设计模式面面观(5):抽象工厂模式(AbstractFactory)-创建型模式 (100%) 设计模式面面观(6):生成器模式(Builder)-创建型模式 (100%) 设计模式面面观(7):原型模式(Prototype)-...
这使得JavaScript这种原生不支持类的语言,也能实现面向对象的编程模式。 2. **对象增强(Object Extension)**:Prototype 提供了`$.extend()`函数,可以将一个对象的属性和方法合并到另一个对象上,这是一种强大...
6. **Class与Object继承**:Prototype.js 引入了面向对象的概念,实现了类(Class)和对象继承,使得JavaScript具备了更接近传统面向对象语言的编程模式。 7. **JSON支持**:随着JSON成为数据交换的主流格式,...
总结,Prototype.js是JavaScript开发中的一个重要工具,它通过一系列强大的API和设计模式,使得JavaScript的开发更加高效、优雅。通过学习和掌握Prototype,开发者可以更好地驾驭JavaScript,创造出更具交互性的Web...
6. **Class与Observer模式**:PrototypeJS引入了Class系统,使得JavaScript可以创建具有继承关系的类。同时,Observer模式的实现使得数据绑定和状态变化的通知变得更加便捷。 7. **JSON支持**:PrototypeJS还包含了...
5. **Class与Object继承**:Prototype 提供了类(Class)和对象(Objects)的继承机制,如`Class.create`和`Object.extend`,使得JavaScript支持面向对象的编程模式。 6. **Selectors API**:Prototype 引入了一个类似...
在给定的"Prototype模式练习"中,我们可以深入探讨这种模式的应用和实现。 首先,原型模式的核心在于`Cloneable`接口和`clone()`方法。在Java中,当一个类实现了`Cloneable`接口,并且重写了`Object`类中的`clone()...
《Prototype Handbook》是JavaScript开发领域的一本重要参考资料,它...同时,Prototype框架的许多设计理念和模式也适用于其他JavaScript库和框架的学习,对于成为一名优秀的前端开发者来说,是一份不可多得的资源。
在实验中,我们可以创建一个基础原型类,比如`Prototype`,并让所有需要克隆的类继承它。然后,每个子类都需要实现`clone()`方法。在实际应用中,可能还需要考虑序列化和反序列化来实现更复杂的深拷贝。 4. **应用...
《深入理解Prototype.js:JavaScript设计模式的基石》 Prototype.js是一个广泛使用的JavaScript库,它为JavaScript语言添加了许多实用的功能,增强了其在Web开发中的表现力。这个库的核心设计理念是通过扩展...
4. **Class系统**:Prototype引入了模拟类的概念,通过`Class.create()`方法创建类,并支持继承和混合(mixin)模式,这极大地增强了JavaScript的面向对象编程体验。 5. **JSON支持**:随着Web服务的流行,...
4. **事件处理**:Prototype改进了JavaScript的事件处理机制,引入了观察者模式,允许更灵活地绑定和解绑事件。Event.observe()和Event.stop()等方法让事件处理更加简洁。 5. **模拟类与继承**:Prototype引入了...
**JavaScript原型(Prototype)库详解** JavaScript是一种动态类型的编程语言...不过要注意,随着现代前端框架的兴起,像React、Vue、Angular等,Prototype.js的使用逐渐减少,但它的设计理念和模式仍然值得学习和借鉴。