<ul id="kimya"><dfn id="kimya"></dfn></ul>
            <strike id="kimya"></strike>
            <del id="kimya"></del>
          • <fieldset id="kimya"><input id="kimya"></input></fieldset>
            <fieldset id="kimya"></fieldset>
          • 小程序員之歌
            java先(我應該為它寫點什么了?。?/div>

            原形設計模式,搞不懂

            今天下載了個設計模式看,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 閱讀(319) 評論(0)  編輯  收藏

            新用戶注冊  刷新評論列表  

            只有注冊用戶登錄后才能發表評論。


            網站導航:
            博客園   IT新聞   Chat2DB   C++博客   博問   管理
             

            Powered by:
            BlogJava
            Copyright © liujg

            <2007年11月>
            日一二三四五六
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            導航

            • BlogJava
            • 首頁
            • 新隨筆
            • 聯系
            • 聚合
            • 管理

            統計

            • 隨筆 - 10
            • 文章 - 40
            • 評論 - 6
            • 引用 - 0

            常用鏈接

            • 我的隨筆
            • 我的評論
            • 我的參與
            • 最新評論

            留言簿(1)

            • 給我留言
            • 查看公開留言
            • 查看私人留言

            隨筆分類

            • js (rss)
            • linux(1) (rss)
            • strus2 (rss)
            • Struts2 Tag語法(轉) (rss)

            隨筆檔案

            • 2014年12月 (1)
            • 2011年9月 (1)
            • 2011年5月 (2)
            • 2011年1月 (1)
            • 2007年11月 (1)
            • 2007年10月 (1)
            • 2007年5月 (1)
            • 2006年12月 (1)

            文章分類

            • Java基礎(10) (rss)
            • JDBC(1) (rss)
            • js(1) (rss)
            • portlet(1) (rss)
            • Tapestry(1) (rss)
            • 數據庫(9) (rss)
            • 算法(1) (rss)

            文章檔案

            • 2011年10月 (1)
            • 2011年5月 (2)
            • 2011年1月 (1)
            • 2010年12月 (1)
            • 2010年8月 (1)
            • 2010年7月 (1)
            • 2010年5月 (2)
            • 2010年4月 (1)
            • 2009年7月 (1)
            • 2009年4月 (1)
            • 2009年3月 (2)
            • 2009年1月 (2)
            • 2008年12月 (1)
            • 2008年11月 (1)
            • 2008年7月 (3)
            • 2008年4月 (2)
            • 2008年3月 (2)
            • 2008年1月 (2)
            • 2007年11月 (3)
            • 2007年7月 (1)
            • 2007年6月 (4)
            • 2007年1月 (1)
            • 2006年7月 (4)

            相冊

            • me

            收藏夾

            • rmi(5) (rss)

            boddiy

            • boddi's blog

            搜索

            •  

            最新評論

            • 1.?re: oracle 取子串(轉)
            • @aaa
              別處轉來的,具體的不懂。
            • --liujg
            • 2.?re: oracle 取子串(轉)[未登錄]
            • 樓主,你說的substring是在oracle哪個版本的???能用嗎???
              charindex又是哪里的函數,能用嗎????搞笑
            • --aaa
            • 3.?re: oracle 取子串(轉)[未登錄]
            • kao
            • --aaa
            • 4.?re: prototype詳解(轉)
            • 郁悶,.NET的!,JAVA里面有MemberwiseClone這個方法么。怎么用JAVA搞原型模式呢?
            • --hehei
            • 5.?re: 轉載一篇jms的文章
            • Thanks for you kind to share the article~~
            • --lingruoxu

            閱讀排行榜

            • 1.?java程序員的5個好習慣()(805)
            • 2.?java 關閉IE(585)
            • 3.?OERR: ORA-12519(563)
            • 4.?doGet()和doPost()的區別(轉)(482)
            • 5.?看了下java核心技術中的代理,還是很暈(398)

            評論排行榜

            • 1.?執行./startup.sh,或者./shutdown.sh的時候,爆出了Permission denied(0)
            • 2.?submit()和onsubmit()的區別(轉)(0)
            • 3.?doGet()和doPost()的區別(轉)(0)
            • 4.?轉載 Vim 基本用法(0)
            • 5.?OERR: ORA-12519(0)
            狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频
            主站蜘蛛池模板: 凌云县| 六盘水市| 富宁县| 富民县| 泰兴市| 静海县| 武清区| 嫩江县| 永安市| 建德市| 海伦市| 阿拉善盟| 柳河县| 阜康市| 息烽县| 昌邑市| 昆山市| 韩城市| 修武县| 马边| 邵阳市| 霸州市| 广元市| 襄汾县| 喜德县| 娄烦县| 嘉善县| 囊谦县| 健康| 宿松县| 玉山县| 龙州县| 建水县| 周至县| 兰州市| 柞水县| 措美县| 洪江市| 芜湖市| 肥东县| 灵寿县|
            • <ul id="io0se"></ul><ul id="io0se"></ul>