原形设计模式,搞不懂

今天下载了个设计模式看,prototype模式就两页纸,看过了也没看出来它到底做什么,比较郁闷。我就不清楚那个copy方法到底做了什么?没有copy方法不行吗?


定义:

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. //通过拷贝创建新的对象跟通过继承创建有什么区别呢?
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();

posted on 2007-11-29 16:23 liujg 阅读(300) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2007年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

boddiy

搜索

最新评论

阅读排行榜

评论排行榜