<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

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

    /**
    ?*?設計模式-原型模式
    ?*?
    @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;

    ????
    /**
    ?????*?構造函數
    ?????*?
    @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()? {
    ????????
    // 創建一個本類對象,并返回給調用者
    ?
    ????????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);
    ????????
    //通過對一個Amigo進行克隆得到第二個Amigo
    ????????CloneAmigo?amigo2?=?(CloneAmigo?)?amigo1.clone();
    ????????System.out.println(
    "第一個Amigo的身高:?"?+?amigo1.getHeight());
    ????????System.out.println(
    "第二個Amigo的身高:?"?+?amigo2.getHeight());

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

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

    }

    ????? 從運行結果可看出兩個Amigo的身高、體重、年齡都是一樣的。
    5. 重點關注----克隆滿足的條件
    ?????
    1)克隆的對象與原對象不是同一個對象;
    ????? 2)克隆對象與原對象的類型一樣;
    ????? 3)如果對象x的equals()方法定義恰當的話,那么x.clone().equals(x)應當是成立的。

    參考書籍:《Java與模式》
    ????????????????????《Patterns in Java》
    posted on 2007-03-13 23:20 阿蜜果 閱讀(3117) 評論(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>   回復  更多評論
      
    # re: 設計模式學習筆記--原型(Prototype)
    2007-03-14 00:19 | popo
    寫的很不錯,能否交換個blog鏈接?嘿嘿  回復  更多評論
      
    # re: 設計模式學習筆記--原型(Prototype)[未登錄]
    2007-03-14 08:45 | 阿蜜果
    好噢,嘻嘻  回復  更多評論
      
    # re: 設計模式學習筆記--原型(Prototype)[未登錄]
    # re: 設計模式學習筆記--原型(Prototype)
    2007-03-14 08:57 | Tortoise
    好東西!!  回復  更多評論
      
    # re: 設計模式學習筆記--原型(Prototype)[未登錄]
    2007-03-19 00:35 | TonySoft
    學以至用  回復  更多評論
      
    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

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

          Power Designer系統分析與建模實戰  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關注blog

    積分與排名

    • 積分 - 2294285
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久国产精品成人免费| 亚洲最大AV网站在线观看| 永久免费AV无码网站国产| 国产精品亚洲精品久久精品| 亚洲专区在线视频| 亚洲人JIZZ日本人| 四虎亚洲国产成人久久精品| 国产精品1024永久免费视频| 日本高清不卡aⅴ免费网站| 边摸边脱吃奶边高潮视频免费| 色在线亚洲视频www| 亚洲色四在线视频观看| 亚洲中文字幕无码一区| 亚洲男女内射在线播放| 免费v片在线观看无遮挡| 午夜视频免费成人| 日本一区二区三区免费高清| 6080午夜一级毛片免费看 | 国内精品免费麻豆网站91麻豆| 国产精品99爱免费视频| 农村寡妇一级毛片免费看视频| 亚洲国产精品成人午夜在线观看| 亚洲av永久无码精品三区在线4| 亚洲白色白色在线播放| 99人中文字幕亚洲区| 久久夜色精品国产噜噜噜亚洲AV| 久久夜色精品国产亚洲AV动态图| 亚洲日韩v无码中文字幕| 国产综合精品久久亚洲| 亚洲五月综合缴情在线观看| 伊伊人成亚洲综合人网7777| 国产亚洲精品高清在线| 亚洲人成网77777亚洲色| 亚洲精品蜜桃久久久久久| 亚洲精品成人片在线播放 | 男的把j放进女人下面视频免费| 不卡视频免费在线观看| 成全视频在线观看免费| 无码少妇精品一区二区免费动态| 无码一区二区三区免费| 69式国产真人免费视频|