[设计模式-创建型]原型(Prototype)
2013-07-19 08:46
507 查看
概括
名称 | Prototype |
结构 | |
动机 | 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 |
适用性 | 当要实例化的类是在运行时刻指定时,例如,通过动态装载;或者 为了避免创建一个与产品类层次平行的工厂类层次时;或者 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。 |
解析
形象比喻:PROTOTYPE—跟MM用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是我的情话prototype了。(100块钱一份,你要不要)
1. Prototype
声明一个克隆自身的接口。
2. ConcretePrototype
实现一个克隆自身的操作。
3. Client
让一个原型克隆自身从而创建一个新的对象。
一言蔽之,就是以clone 的方法创建一个和原对象相同的对象。
实例
涉及的文件有:Prototype.java
- ConcretePrototype.java
TestMain.java
这种模式很容易理解,就是在 Prototype 中有定义一个clone 方法(记得需要继承Cloneable接口)
/** * @author oscar999 * @date 2013-7-19 * @version V1.0 */ package designptn.prototype; public class Prototype implements Cloneable { private String name; /** * @return the name */ public String getName() { return name; } /** * @param name * the name to set */ public void setName(String name) { this.name = name; } public Object clone() { try { return super.clone(); } catch (Exception e) { e.printStackTrace(); return null; } } }
/** * @author oscar999 * @date 2013-7-19 * @version V1.0 */ package designptn.prototype; public class ConcretePrototype extends Prototype { public ConcretePrototype(String name) { setName(name); } }
/** * @author oscar999 * @date 2013-7-19 * @version V1.0 */ package designptn.prototype; public class TestMain { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Prototype pro = new ConcretePrototype("prototype"); Prototype pro2 = (Prototype) pro.clone(); System.out.println(pro.getName()); System.out.println(pro2.getName()); } }
相关文章推荐
- 跟着实例学习设计模式(7)-原型模式prototype(创建型)
- 【设计模式】创建型模式之原型Prototype
- 设计模式--原型模式Prototype(创建型)
- 设计模式(2)-创建型-原型模式(Prototype)
- JAVA设计模式(5) —<创建型>原型模式(Prototype)
- 设计模式学习之原型模式(Prototype,创建型模式)(5)
- 设计模式--原型模式Prototype(创建型)
- 设计模式(四)原型模式(Prototype)-创建型
- 创建型设计模式---原型模式(Prototype)
- 设计模式之十:Prototype(原型)—对象创建型模式
- JAVA设计模式(05):创建型-原型模式(Prototype)
- C#面向对象设计模式学习笔记(5) - Prototype 原型模式(创建型模式)
- [设计模式-创建型]原型(Prototype)
- 【设计模式】创建型模式——原型模式(Prototype Pattern)
- 设计模式(四)、PROTOTYPE(原型)---对象创建型模式
- 设计模式之原型法(ProtoType)----对象创建型模式
- 设计模式学习总结4 - 创建型4 - Prototype原型模式
- JAVA设计模式(05):创建型-原型模式(Prototype)
- 23种设计模式之原型模式(创建型,5 Prototype,c++实现)
- 【创建型模式】原型模式(Prototype)之23种java设计模式