<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 對象的克隆——原型模式(二) 7.3 完整解決方案 Sunny公司開發人員決定使用原型模式來實現工作周報的快速創建,快速創建工作周報結構圖如圖7-3所示: ![](http://my.csdn.net/uploads/201204/03/1333464523_7039.gif) 圖7-3 快速創建工作周報結構圖 在圖7-3中,WeeklyLog充當具體原型類,Object類充當抽象原型類,clone()方法為原型方法。WeeklyLog類的代碼如下所示: ``` //工作周報WeeklyLog:具體原型類,考慮到代碼的可讀性和易理解性,只列出部分與模式相關的核心代碼 class WeeklyLog implements Cloneable { private String name; private String date; private String content; public void setName(String name) { this.name = name; } public void setDate(String date) { this.date = date; } public void setContent(String content) { this.content = content; } public String getName() { return (this.name); } public String getDate() { return (this.date); } public String getContent() { return (this.content); } //克隆方法clone(),此處使用Java語言提供的克隆機制 public WeeklyLog clone() { Object obj = null; try { obj = super.clone(); return (WeeklyLog)obj; } catch(CloneNotSupportedException e) { System.out.println("不支持復制!"); return null; } } } ``` 編寫如下客戶端測試代碼: ``` class Client { public static void main(String args[]) { WeeklyLog log_previous = new WeeklyLog(); //創建原型對象 log_previous.setName("張無忌"); log_previous.setDate("第12周"); log_previous.setContent("這周工作很忙,每天加班!"); System.out.println("****周報****"); System.out.println("周次:" + log_previous.getDate()); System.out.println("姓名:" + log_previous.getName()); System.out.println("內容:" + log_previous.getContent()); System.out.println("--------------------------------"); WeeklyLog log_new; log_new = log_previous.clone(); //調用克隆方法創建克隆對象 log_new.setDate("第13周"); System.out.println("****周報****"); System.out.println("周次:" + log_new.getDate()); System.out.println("姓名:" + log_new.getName()); System.out.println("內容:" + log_new.getContent()); } } ``` 編譯并運行程序,輸出結果如下: ``` ****周報**** 周次:第12周 姓名:張無忌 內容:這周工作很忙,每天加班! -------------------------------- ****周報**** 周次:第13周 姓名:張無忌 內容:這周工作很忙,每天加班! ``` 通過已創建的工作周報可以快速創建新的周報,然后再根據需要修改周報,無須再從頭開始創建。原型模式為工作流系統中任務單的快速生成提供了一種解決方案。 思考 如果在Client類的main()函數中增加如下幾條語句: ``` System.out.println(log_previous == log_new); System.out.println(log_previous.getDate() == log_new.getDate()); System.out.println(log_previous.getName() == log_new.getName()); System.out.println(log_previous.getContent() == log_new.getContent()); ``` 預測這些語句的輸出結果。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看