`

Java Prototype模式的学习(原型模式)

阅读更多

 原型模式定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.

    Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。

如何使用? 因为Java中的提供clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单.

以勺子为例:

package com.pattern.prototype;

/** *//**
 * 原型类(以汤匙为例) ,注意要实现Cloneable接口
 * 
 * 
@author zdw
 * 
 
*/

public abstract class AbstractSpoon implements Cloneable
{
    
public String spoonName;

    
public String getSpoonName()
    
{
        
return this.spoonName;
    }


    
public void setSpoonName(String spoonName)
    
{
        
this.spoonName = spoonName;
    }


    
/** *//**
     * 重写clone()方法
     
*/

    @Override
    
public Object clone()
    
{
        
try
        
{
            
return super.clone();
        }
 catch (CloneNotSupportedException e)
        
{
            System.out.println(
"此对象不支持复制");
        }

        
return null;
    }

}


对原型的具体实现:

package com.pattern.prototype;

/** *//**
 * 给原型对象赋值
 * 
 * 
@author zdw
 * 
 
*/

public class SoupSpoon extends AbstractSpoon
{
    
public SoupSpoon()
    
{
        setSpoonName(
"chinaDrong");
    }

}


测试类:

package com.pattern.prototype;

/** *//*******************************************************************************
 * 测试类
 * 
 * 
@author zdw
 * 
 
*/

public class Client
{
    
public static void main(String[] args)
    
{
        AbstractSpoon spoon 
= new SoupSpoon();
        System.out.println(spoon.getSpoonName());
        
// 通过对象的clone()方法,即可获得对象的一个copy.
        AbstractSpoon spoon2 = (AbstractSpoon) spoon.clone();
        System.out.println(spoon2.getSpoonName());
    }

}

 

当然也可以结合工厂模式来创建AbstractSpoon实例。

在Java中Prototype模式变成clone()方法的使用,由于Java的纯洁的面向对象特性,使得在Java中使用设计模式变得很自然,两者已经几乎是浑然一体了。这反映在很多模式上,如Interator遍历模式。


々上善若水々 2008-05-26 09:39 发表评论
分享到:
评论

相关推荐

    java设计模式之原型模式

    java设计模式之原型模式,希望对大家有所帮助。

    Java设计模式之原型模式(Prototype模式)介绍

    主要介绍了Java设计模式之原型模式(Prototype模式)介绍,本文讲解了如何使用原型模式并给出了代码实例,需要的朋友可以参考下

    Java设计模式之Prototype原型模式

    主要为大家详细介绍了Java设计模式之Prototype原型模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Java设计模式——原型模式

    原型模式Java设计模式——原型模式概念使用场景Java里的克隆代码理解prototype(原型)问题总结优缺点模型优点模型缺点 概念 ​ 原型模式是创建型模式的最后一种,讲到原型模式就不得不提到克隆这个词,克隆这个词...

    JAVA设计模式chm文档

    设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator...

    [Java设计模式(第2版)(Design.Patterns.in.Java).John.Metsker

    第18章 原型(prototype)模式 158 第19章 备忘录(memento)模式 163 第20章 操作型模式介绍 176 第21章 模板方法(template method)模式 182 第22章 状态(state)模式 193 第23章 策略(strategy)模式 204 第24章 命令...

    java设计模式【之】原型模式、深拷贝与浅拷贝【源码】【场景:克隆羊】

    java设计模式【之】原型模式、深拷贝与浅拷贝【源码】【场景:克隆羊】 * 原型模式(Prototype) * 实现方式: * 需要被克隆的 class类, 重写Object中的clone()方法,并实现Cloneable接口(否则报错 ...

    33种JAVA设计模式DEMO

    原型模式(Prototype Pattern) 2 结构型模式 这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 适配器模式(Adapter Pattern) 桥接模式(Bridge Pattern) 过滤器模式...

    java设计模式教程+源代码

    Prototype ( 原型模式 ) Adapter ( 适配器模式 ) Bridge ( 桥接模式 ) Composite ( 组合模式 ) Decorator ( 装饰模式 ) Facade ( 外观模式 ) Flyweight ( 享元模式 ) Proxy ( 代理模式 ) Chain of ...

    设计模式_原型模式.zip

    原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当...

    Java原型设计模式(Prototype)

     原型模式(Prototype)是通过复制一个已经存在的实例来返回新的实例,而不是新建实例,被复制的实例是我们所称的原型对象,这个原型是可定制的。  2、原理  有两部分组成,抽象原型和具体原型。意图:用原型...

    用Java实现23种设计模式

    原型模式(Prototype Pattern) 2. 结构型模式 适配器模式(Adapter Pattern) 桥接模式(Bridge Pattern) 过滤器模式(Filter、Criteria Pattern) 组合模式(Composite Pattern) 装饰器模式(Decorator ...

    Java设计模式学习教程与案例源码.zip

    Java设计模式学习教程与案例源码.zip 设计模式 ======= [设计模式专题](http://94275.cn/categories/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/) ### 创建型 1. [工厂方法](worthed/OriginBlog/blob/master/...

    原型模式(Prototype Pattern)原理图

    原型模式是一种创建型设计模式,它通过复制一个现有的对象来创建新的对象,而不是通过调用构造函数的方式。这种方式可以在运行时动态地创建和修改对象,而不需要知道具体的创建细节 。 原型模式的基本概念包括以下...

    23种java设计模式

    Factory(工厂模式)、Singleton(单态)、Builder(建造者模式)、Prototype(原型模式)、工厂方法模式。2、结构模式:Flyweight(共享模式)、Bridge(桥模式)、Decorator(装饰模式)、Composite(组合模式)、Adapter(适配器...

    JAVA设计模式-day2.pdf

    5、 原型模式(Prototype))、结构模式(7种:6、 适配器模式; 7、 装饰模式(Decorator); 8、 代理模式(Proxy) • 9、 外观模式(Facade); 10、 桥接模式(Bridge); 11、 组合模式(Composite))、关系...

    JAVA设计模式23种

    23种设计模式 创建模式 设计模式之Singleton(单态/单件) 阎宏博士讲解:单例(Singleton)模式 保证一个类只有一个...设计模式之Prototype(原型) 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

    23种java版设计模式源码案例.zip

    原型模式(prototype) 结构型模式(structure) 适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite) 装饰器模式(decorate) 外观模式(facecade) 享元模式(flyweight) 代理模式(proxy) 行为型模式(behaviour) ...

    设计模式_创建类_5种模式Java的实际例子_注释详细

    设计模式_创建类_5种模式Java的实际例子_注释详细 包括 1、单例模式(Singleton) 2、工厂方法(Factory Method) 3、抽象工厂(Abstract Factory) 4、建造模式(Builder) 5、原型模式(Prototype)

    Java设计模式,并加上个人理解

    10. 原型模式 (Prototype Pattern) 11. 组合模式 (Composite Pattern) 12. 装饰者模式 (Decorator Pattern) 13. 访问者模式 (Visitor Pattern) 14. 迭代器模式 (Iterator Pattern) 15. 享元模式 ...

Global site tag (gtag.js) - Google Analytics