posts - 73,  comments - 55,  trackbacks - 0

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

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

          如何使用?
          因?yàn)镴ava中的提供clone()方法來實(shí)現(xiàn)對(duì)象的克隆,所以Prototype模式實(shí)現(xiàn)一下子變得很簡(jiǎ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;
            }
          }

          有個(gè)具體實(shí)現(xiàn)(ConcretePrototype):

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

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

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

          當(dāng)然也可以結(jié)合工廠模式來創(chuàng)建AbstractSpoon實(shí)例。

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

          posted on 2006-07-24 16:07 保爾任 閱讀(321) 評(píng)論(0)  編輯  收藏 所屬分類: Design Patten

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 钟山县| 扬州市| 盘山县| 柘荣县| 双江| 平和县| 长海县| 河西区| 深圳市| 兰溪市| 东乡县| 龙川县| 漳州市| 卢湾区| 汕尾市| 平塘县| 介休市| 恩施市| 巴中市| 新乡县| 胶南市| 安义县| 鲜城| 江城| 南部县| 遵义县| 高州市| 潮州市| 郓城县| 化德县| 靖边县| 靖宇县| 饶平县| 航空| 土默特左旗| 铜川市| 巢湖市| 同德县| 安吉县| 洛南县| 石景山区|