<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                13.2 原型模式的定義 原型模式(Prototype Pattern)的簡單程度僅次于單例模式和迭代器模式。正是由于簡單,使用的場景才非常地多,其定義如下: Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象。) 原型模式的通用類圖如圖13-3所示。 ![](https://box.kancloud.cn/2016-08-14_57b0036362f97.jpg) 圖13-3 原型模式的通用類圖 簡單,太簡單了!原型模式的核心是一個clone方法,通過該方法進行對象的拷貝,Java提供了一個Cloneable接口來標示這個對象是可拷貝的,為什么說是“標示”呢?翻開JDK的幫助看看Cloneable是一個方法都沒有的,這個接口只是一個標記作用,在JVM中具有這個標記的對象才有可能被拷貝。那怎么才能從“有可能被拷貝”轉換為“可以被拷貝”呢?方法是覆蓋clone()方法,是的,你沒有看錯是重寫clone()方法,看看我們上面Mail類中的clone方法,如代碼清單13-6所示。 代碼清單13-6 郵件類中的clone方法 @Override public?Mail?clone(){} 注意,在clone()方法上增加了一個注解@Override,沒有繼承一個類為什么可以覆寫呢?想想看,在Java中所有類的老祖宗是誰?對嘛,Object類,每個類默認都是繼承了這個類,所以用覆寫是非常正確的——覆寫了Object類中的clone方法! 在Java中原型模式是如此簡單,我們來看通用源代碼,如代碼清單13-7所示。 代碼清單13-7 原型模式通用源碼 public?class?PrototypeClass??implements?Cloneable{ ?????//覆寫父類Object方法 ?????@Override ?????public?PrototypeClass?clone(){ ?????????????PrototypeClass?prototypeClass?=?null; ?????????????try?{ ????????????????????prototypeClass?=?(PrototypeClass)super.clone(); ?????????????}?catch?(CloneNotSupportedException?e)?{ ????????????????????//異常處理 ?????????????} ?????????????return?prototypeClass; ?????} } 實現一個接口,然后重寫clone方法,就完成了原型模式!
                  <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>

                              哎呀哎呀视频在线观看