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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 備忘錄模式 在不破壞封裝性的前提下,捕獲一個對象的內部狀態,并在該對象之外保存這個狀態。這樣以后就可將這個對象恢復到原先保存的狀態。(摘抄) 備忘錄模式可以就用平時備忘東西的過程來理解,首先你要備忘,必須要知道備忘什么東西,這時就可以把備忘的東西抽出來當一個類Memento,然后你要有一個產生備忘的類,是誰要備忘Originator,最后備忘的東西放在哪,需要的時候去哪里取出來Caretaker。 ~~~ //備忘錄類 public class Memento { private String state; public Memento(String state) { this.state = state; } public String getState() { return state; } } //生成備忘錄的類 public class Originator { private String state; public void setState(String state) { this.state = state; } public void printState() { System.out.println(state); } public Memento createMemento() { return new Memento(state); } public void setMemento(Memento memento) { state = memento.getState(); } } //存儲備忘錄的類 public class Save { private Memento memento; public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento = memento; } } class client { public static void main() { Originator originator = new Originator(); originator.setState("start"); originator.printState(); //保存狀態 Save save = new Save(); save.setMemento(originator.createMemento()); originator.setState("stop"); originator.printState(); //恢復狀態 originator.setMemento(save.getMemento()); originator.printState(); } } ~~~ 要保存的細節全部都封裝在Memento類里面了,如果需要改變保存的細節,那么也和客戶端沒有關系。這就是備忘錄模式最大的好處,例如你一開始想保存A屬性,但是后來又想保存B屬性,這個時候只需要改動Originator和Memento,客戶端完全是可以繼續用的。 Memento模式比較適合用于功能比較復雜的,但需要維護或記錄屬性歷史的類,或者需要保存屬性只是眾多屬性中的一小部分時,Originator可以根據保存的Memento信息還原到前一個狀態。(摘抄)
                  <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>

                              哎呀哎呀视频在线观看