1.意图:
用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。(G4)
例子:
public abstract class AbstractPrototype implements Cloneable{
@Override
protected Object clone(){
Object o=null;
try {
o=super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
public abstract void say();
public String getStrName() {
return strName;
}
public void setStrName(String strName) {
this.strName = strName;
}
private String strName;
}
public class PrototypeA extends AbstractPrototype {
public PrototypeA(String name) {
setStrName(name);
}
@Override
public void say() {
System.out.println("PrototypeA");
}
}
public class PrototypeB extends AbstractPrototype {
public PrototypeB(String name) {
setStrName(name);
}
@Override
public void say() {
System.out.println("PrototypeB");
}
}
public class Test {
public static void main(String[] agrs) {
AbstractPrototype p = new PrototypeA("fy");
AbstractPrototype k = (AbstractPrototype) p.clone();
AbstractPrototype e = (AbstractPrototype) p.clone();
p.say();
k.say();
e.say();
AbstractPrototype q = new PrototypeB("flh");
AbstractPrototype c = (AbstractPrototype) q.clone();
AbstractPrototype u = (AbstractPrototype) q.clone();
q.say();
c.say();
u.say();
}
}
运行结果:
PrototypeA
PrototypeA
PrototypeA
PrototypeB
PrototypeB
PrototypeB
分享到:
相关推荐
第二章至第五章,作者们详细讲解了五种创建型设计模式:单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。这五种模式都...
GoF 设计模式GoF所提出的23种设计模式主要基于以下面向对象设计原则:对接口编程而不是对实现编程优先使用对象组合而不是继承23种设计模式分为三大类:...原型(Prototype)模式:将一个对象作为原型,通过对其进行复制
创建模式:设计模式之Factory,设计模式之Prototype(原型),设计模式之Builder,设计模式之Singleton(单态). 结构模式:设计模式之Facade(外观),设计模式之Proxy(代理),设计模式之Adapter(适配器),设计模式之Composite...
《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位作者共同编写,因此人们通常将其...
5. **原型模式 (Prototype)**:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。它简化了实例化过程。 6. **组合模式 (Composite)**:将对象组合成树形结构以表示“部分-整体”的层次结构。组合...
- **Prototype模式**:通过克隆已有的实例来创建新对象,而不是通过创建新的实例。 #### 2. 结构型模式 - **Bridge模式**:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 - **Adapter模式**:将一个类...
- **1.5 Prototype模式**:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 - **应用场景**:对象初始化消耗资源过多时。 - **优点**:性能高,可以避免构造函数带来的问题。 - **缺点**:...
5. **原型模式 (Prototype)**:通过复制已有对象来创建新对象,减少了类的实例化。Java提供了Cloneable接口和Object类的clone()方法来支持原型模式。 6. **适配器模式 (Adapter)**:将两个不兼容的接口通过适配器...
《GOF 23种设计模式》是软件工程领域中极具影响力的一本书,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,因此也被称为“Gang of Four”(GOF)的设计模式。这本书详细阐述了在面向...
- **1.5 Prototype模式**:原型模式使用已有的对象实例作为原型,通过复制来创建新的对象实例。这种方式可以提高创建对象的速度和效率。 #### 2. 结构型模式 - **2.1 Bridge模式**:桥接模式将抽象部分与它的实现...
GOF,即 Gamma、Erich, Johnson, Vlissides 四位大师合著的《设计模式:可复用面向对象软件的基础》一书,提出了23种经典的设计模式。这些模式为软件设计提供了通用的解决方案,使得开发者能够利用前人的经验,提高...
**定义**: Prototype模式使用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 **应用场景**: 当创建新对象的成本较高时,或者需要大量相似对象时。 **C++实现**: Prototype模式的核心是定义一个...
- **1.5 Prototype模式**:Prototype模式使用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 - 这种模式适用于对象创建成本较高或者需要大量实例化的场景,通过克隆现有的实例来快速生成新对象...
Design-Patterns-JS, 在Javascript中,实现了所有 23 ( GoF ) 设计模式 设计模式 JS 在这里,你将使用Prototype和ES6类在JavaScript中实现 23 ( GoF ) 设计模式。 你可以使用英镑 docs.md 来加快示例的概述。遵循...
5. **Prototype模式** - **定义**:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 - **应用场景**:当一个类的实例只能有几个不同状态组合中的一种时使用。 - **优点**:可以通过克隆已有...
- **Prototype模式**:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 - **应用场景**:当创建对象的成本很高时。 - **优点**:避免了创建过程中的高昂代价。 - **缺点**:需要为每个类配备...