<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 297,  comments - 1618,  trackbacks - 0

    ??? 原型模式屬于對象的創(chuàng)建模式。
    1. 定義
    ???? 用原型實(shí)例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象.
    2. 工作原理
    ????? 通過將一個(gè)原型對象傳給那個(gè)要發(fā)動創(chuàng)建的對象,這個(gè)要發(fā)動創(chuàng)建的對象請求原型對象拷貝它們自己來實(shí)施創(chuàng)建.
    ?????
    3. 使用方法
    ???? Java語言的構(gòu)件模型直接支持原始模型模式.所有的JavaBean都繼承自java.lang.Object,而Object類提供一個(gè)clone()方法,可以將一個(gè)JavaBean對象復(fù)制一份.但是,這個(gè)JavaBean必須實(shí)現(xiàn)一個(gè)標(biāo)識接口Cloneable,表明這個(gè)JavaBean支持復(fù)制.
    4. 經(jīng)典應(yīng)用場景
    ??? 孫悟空在與黃風(fēng)怪的戰(zhàn)斗中,使用了一個(gè)身外身的手段,叫聲"變",變出來百來個(gè)行者.這中手段在面向?qū)ο箢I(lǐng)域里就是原型模式.
    ??? 嘿嘿,我也用這種方法來“變”出幾個(gè)Amigo來,嘻嘻,一個(gè)去工作,一個(gè)去談戀愛,一個(gè)去跟朋友玩,一個(gè)去跟家人逛吧......
    ??? 看我的......

    /**
    ?*?設(shè)計(jì)模式-原型模式
    ?*?
    @author ?Amigo?Xie(xiexingxing1121@126.com)
    ?*?
    @since ?2007/03/13?22:20
    ?
    */

    class ?CloneAmigo? implements ?Cloneable? {
    ????
    /** ?身高(單位:cm) */
    ????
    private ? int ?height;
    ????
    ????
    /** ?體重(單位:kg) */
    ????
    private ? int ?weight;
    ????
    ????
    /** ?年齡 */
    ????
    private ? int ?age;

    ????
    /**
    ?????*?構(gòu)造函數(shù)
    ?????*?
    @param ?height?
    ?????*?
    @param ?weight
    ?????*?
    @param ?age
    ?????
    */

    ????
    public ?CloneAmigo( int ?height,? int ?weight,? int ?age)? {
    ????????
    this .height? = ?height;
    ????????
    this .weight? = ?weight;
    ????????
    this .age? = ?age;??
    ????}

    ????
    ????
    public ?Object?clone()? {
    ????????
    // 創(chuàng)建一個(gè)本類對象,并返回給調(diào)用者
    ?
    ????????CloneAmigo?temp? = ? new??CloneAmigo(height,?weight,?age);
    ????????
    return?(Object)temp;
    ????}


    ????
    public ? void ?setHeight( int ?height)? {????
    ????????
    this .age? = ?age;
    ????}


    ????pubiic?
    int ?getHeight()? {
    ????????
    return ?height;
    ????}


    ????
    public ? void ?setWeight( int ?weight)? {
    ????????
    this .weight? = ?weight;
    ????}


    ????
    public ? int ?getWeight()? {
    ????????
    return ?weight;
    ????}


    ????
    public ? void ?setAge( int ?age)? {
    ????????
    this .age? = ?age;
    ????}


    ????
    public ? void ?getAge()? {
    ????????
    return ?age;
    ????}


    }

    ??? 測試類的代碼如下:

    public ? class ??Client? {
    ????
    public ? static ? void ?main(String[]?args)? {
    ????????CloneAmigo?amigo1?
    = ? new??CloneAmigo?(158,?45,?24);
    ????????
    //通過對一個(gè)Amigo進(jìn)行克隆得到第二個(gè)Amigo
    ????????CloneAmigo?amigo2?=?(CloneAmigo?)?amigo1.clone();
    ????????System.out.println(
    "第一個(gè)Amigo的身高:?"?+?amigo1.getHeight());
    ????????System.out.println(
    "第二個(gè)Amigo的身高:?"?+?amigo2.getHeight());

    ????????System.out.println(
    "第一個(gè)Amigo的體重:?"?+?amigo1.getWeight());
    ????????System.out.println(
    "第二個(gè)Amigo的體重:?"?+?amigo2.getWeight());

    ????????System.out.println(
    "第一個(gè)Amigo的年齡:?"?+?amigo1.getAge());
    ????????System.out.println(
    "第二個(gè)Amigo的年齡:?"?+?amigo2.getAge());
    ????}

    }

    ????? 從運(yùn)行結(jié)果可看出兩個(gè)Amigo的身高、體重、年齡都是一樣的。
    5. 重點(diǎn)關(guān)注----克隆滿足的條件
    ?????
    1)克隆的對象與原對象不是同一個(gè)對象;
    ????? 2)克隆對象與原對象的類型一樣;
    ????? 3)如果對象x的equals()方法定義恰當(dāng)?shù)脑?那么x.clone().equals(x)應(yīng)當(dāng)是成立的。

    參考書籍:《Java與模式》
    ????????????????????《Patterns in Java》
    posted on 2007-03-13 23:20 阿蜜果 閱讀(3118) 評論(6)  編輯  收藏 所屬分類: Design Pattern


    FeedBack:
    # fiaxqqfo
    2007-03-13 23:35 | fiaxqqfo
    [URL=http://ximiqfkw.com]nncsodro[/URL] fqahexya http://bfrjeiou.com rfcdyasm btzsbmxa <a href="http://flqngefl.com">dhmiotcj</a>   回復(fù)  更多評論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--原型(Prototype)
    2007-03-14 00:19 | popo
    寫的很不錯(cuò),能否交換個(gè)blog鏈接?嘿嘿  回復(fù)  更多評論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--原型(Prototype)[未登錄]
    2007-03-14 08:45 | 阿蜜果
    好噢,嘻嘻  回復(fù)  更多評論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--原型(Prototype)[未登錄]
    # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--原型(Prototype)
    2007-03-14 08:57 | Tortoise
    好東西?。?nbsp; 回復(fù)  更多評論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--原型(Prototype)[未登錄]
    2007-03-19 00:35 | TonySoft
    學(xué)以至用  回復(fù)  更多評論
      
    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

          生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
          我的作品:
          玩轉(zhuǎn)Axure RP  (2015年12月出版)
          

          Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關(guān)注blog

    積分與排名

    • 積分 - 2294505
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲动漫精品无码av天堂| 国产自偷亚洲精品页65页| 国产一区二区三区在线观看免费 | 男女超爽视频免费播放| 一个人免费观看www视频| 在线毛片片免费观看| 最近中文字幕大全中文字幕免费 | 日本特黄特色aa大片免费| 免费在线观看黄色毛片| 亚洲精品中文字幕无码蜜桃| 久久国产亚洲高清观看| 亚洲成在人线在线播放无码| 一级毛片在线完整免费观看| 无码精品人妻一区二区三区免费看 | 久久久久久毛片免费看| 国产精品入口麻豆免费观看| 国内一级一级毛片a免费| 伊人久久大香线蕉亚洲五月天| 91在线精品亚洲一区二区| 亚洲sm另类一区二区三区| 特级做A爰片毛片免费看无码| 国产成人精品免费午夜app| 国产精品另类激情久久久免费| 国产亚洲精久久久久久无码77777| 亚洲蜜芽在线精品一区| 免费人成网上在线观看| 在线免费观看亚洲| 免费国内精品久久久久影院| 亚洲成色在线影院| 国产偷国产偷亚洲高清人 | 日韩在线观看免费| 91麻豆国产免费观看| 哒哒哒免费视频观看在线www| 亚洲av永久无码精品古装片| 亚洲精品无码久久久久APP| 中文字幕成人免费高清在线| 好吊妞在线新免费视频| 久久精品视频亚洲| 黄网站色成年片大免费高清| 久久WWW免费人成一看片| 亚洲午夜福利717|