<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

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产桃色在线成免费视频| 国产一卡二卡四卡免费| 特a级免费高清黄色片 | 337P日本欧洲亚洲大胆精品| 日日摸夜夜添夜夜免费视频| 国产一级淫片免费播放电影| 激情97综合亚洲色婷婷五| 亚洲人成人77777网站| 亚洲国产精品久久人人爱| 国产亚洲精品激情都市| 亚洲色大成网站www永久| 亚洲精华国产精华精华液好用| WWW国产成人免费观看视频| 无码av免费毛片一区二区| 亚洲成人福利在线| 我要看WWW免费看插插视频| 自拍偷自拍亚洲精品第1页| 波多野结衣免费一区视频 | 国产成人不卡亚洲精品91| 久久免费区一区二区三波多野| 国产免费直播在线观看视频| 在线观看亚洲专区| 亚洲精品无码午夜福利中文字幕| 亚洲日本在线电影| 18禁止看的免费污网站| 中文字幕亚洲一区二区三区| 免费日本一区二区| 中文字幕亚洲综合久久菠萝蜜| 在线观看特色大片免费网站| 亚洲日本香蕉视频| 深夜国产福利99亚洲视频| 亚洲18在线天美| 老汉精品免费AV在线播放| 亚洲线精品一区二区三区 | 久久伊人亚洲AV无码网站| 99精品视频在线观看免费播放| 亚洲va久久久久| 18禁止看的免费污网站| 亚洲AV无码之国产精品| 成人毛片免费观看视频| a毛片在线还看免费网站|