概述
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
适用性
1.当一个系统应该独立于它的产品创建、构成和表示时。
2.当要实例化的类是在运行时刻指定时,例如,通过动态装载。
3.为了避免创建一个与产品类层次平行的工厂类层次时。
4.当一个类的实例只能有几个不同状态组合中的一种时。
建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。
参与者
1. Prototype
声明一个克隆自身的接口。
2. ConcretePrototype
实现一个克隆自身的操作。
3. Client
让一个原型克隆自身从而创建一个新的对象。
示例:
package com.sql9.created;
// Prototype
abstract class Prototype implements Cloneable
{
private String _name;
public void setName(String name)
{
_name = name;
}
public String getName()
{
return _name;
}
public Object clone()
{
try
{
return super.clone();
}
catch (Exception ex)
{
ex.printStackTrace();
return null;
}
}
}
// Concrete Prototype
class TrainPrototype extends Prototype
{
public TrainPrototype(String name)
{
setName(name);
}
}
public class PrototypeTest
{
public static void main(String[] args)
{
Prototype prototype = new TrainPrototype("北方火车");
Prototype p2 = (Prototype)prototype.clone();
System.out.println("prototype name: " + prototype.getName());
System.out.println("p2 name: " + p2.getName());
}
}
结果:prototype name: 北方火车
p2 name: 北方火车
<script type="text/javascript"><!--
google_ad_client = "ca-pub-7104628658411459";
/* wide1 */
google_ad_slot = "8564482570";
google_ad_width = 728;
google_ad_height = 90;
//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
分享到:
相关推荐
JAVA-设计模式-创建型模式-原型模式
Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。...
设计模式专题之(五)原型模式---设计模式原型模式示例代码(python--c++)
设计模式03-创建型模式 设计模式04-创建型模式2 设计模式05-建造者、原型模式 设计模式06-适配器、桥接、组合模式 设计模式07-组合模式、装饰模式 设计模式09-外观模式、享元模式 设计模式10-代理模式、结构型模式大...
最新设计模式超级详解课程,课程深入浅出的探讨...├─day01-总览设计模式-05-创建型模式-原型模式.mp4 ├─day01-总览设计模式-06-创建型模式-工厂-简单工厂模式.mp4 ├─day01-总览设计模式-07-创建型模式-工厂-工厂
(100%) 设计模式面面观(5):抽象工厂模式(AbstractFactory)-创建型模式 (100%) 设计模式面面观(6):生成器模式(Builder)-创建型模式 (100%) 设计模式面面观(7):原型模式(Prototype)-...
C++设计模式-创建型模式-原型模式;C++实现的关键 拷贝构造函数
c++20设计模式-第4章-原型模式代码
6、原型模式(Prototype Pattern) 用意:通过拷贝创建一个新的对象
设计模式精解-GoF23种设计模式解析附C++实现源码,是系统学习设计模式,深入理解每种模式的原型,优缺点,适用的场景,达到灵活运用目的的最好参考书
├─第一章 旭瑶-小滴...│ 5.1-创建型设计模式-Prototype原型设计模式实战《上》.mp4 │ 5.2-创建型设计模式-Prototype原型设计模式实战《下》.mp4 │ 6.1-接口之间的桥梁-适配器设计模式你知道多少.mp4 │ 6.4
3.4 Prototype(原型)—对象创建型模式 87 3.5 Singleton(单件)—对象创建型模式 84 3.6 创建型模式的讨论 89 第 4 章 结构型模式 91 4.1 Adapter(适配器)—类对象结构型模式 92 4.2 Bridge(桥接)—对象结构...
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/1032892
设计模式C++学习之原型模式(Prototype)
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) 体验课程
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式)
IOS设计模式浅析之原型模式(Prototype)--copy - iOS知识库1
C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) (Level 300)
设计模式_创建型_原型模式