劍心博客

          Just for java

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            1 隨筆 :: 29 文章 :: 1 評論 :: 0 Trackbacks

          設計模式之Prototype(原型)

          板橋里人 http://www.jdon.com 2002/05/07

          原型模式定義:
          用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象.

          Prototype模式允許一個對象再創(chuàng)建另外一個可定制的對象,根本無需知道任何如何創(chuàng)建的細節(jié),工作原理是:通過將一個原型對象傳給那個要發(fā)動創(chuàng)建的對象,這個要發(fā)動創(chuàng)建的對象通過請求原型對象拷貝它們自己來實施創(chuàng)建。

          如何使用?
          因為Java中的提供clone()方法來實現(xiàn)對象的克隆,所以Prototype模式實現(xiàn)一下子變得很簡單.

          以勺子為例:

          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;
            }
          }

          有個具體實現(xiàn)(ConcretePrototype):

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

          調(diào)用Prototype模式很簡單:

          AbstractSpoon spoon = new SoupSpoon();
          AbstractSpoon spoon2 = spoon.clone();

          當然也可以結合工廠模式來創(chuàng)建AbstractSpoon實例。

          在Java中Prototype模式變成clone()方法的使用,由于Java的純潔的面向?qū)ο筇匦?,使得在Java中使用設計模式變得很自然,兩者已經(jīng)幾乎是渾然一體了。這反映在很多模式上,如Interator遍歷模式。

          posted on 2006-12-11 19:41 powerwind 閱讀(109) 評論(0)  編輯  收藏 所屬分類: 轉(zhuǎn)來好帖
          主站蜘蛛池模板: 恭城| 上虞市| 营山县| 佛山市| 九寨沟县| 龙陵县| 汉寿县| 兴安县| 白山市| 房山区| 西峡县| 浑源县| 仙居县| 开远市| 客服| 霞浦县| 济阳县| 广东省| 习水县| 天水市| 修水县| 铜陵市| 茌平县| 封丘县| 崇左市| 镇平县| 胶州市| 新巴尔虎右旗| 桑植县| 东丰县| 武定县| 濮阳市| 芮城县| 武安市| 阳朔县| 宁安市| 新化县| 彭阳县| 四平市| 大田县| 体育|