<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 功能強大 支持多語言、二開方便! 廣告
                備忘錄模式(Memento):主要目的是保存一個對象的某個狀態,以便在適當的時候恢復對象。 ##一、uml建模: ![](https://box.kancloud.cn/2016-02-19_56c7196edaac4.jpg) ##二、代碼實現 ~~~ /** * 備忘錄模式(Memento):主要目的是保存一個對象的某個狀態,以便在適當的時候恢復對象 * * 示例:原始類--> 創建、恢復備忘錄 */ class Original { private String state; public Original(String state) { this.state = state; } public String getState() { return state; } public void setState(String state) { this.state = state; } /** * 創建備忘錄 */ public Memento createMemento() { return new Memento(state); } /** * 恢復備忘錄 */ public void recoverMemento(Memento memento) { this.state = memento.getState(); } } /** * 備忘錄 */ class Memento { private String state; public Memento(String state) { this.state = state; } public String getState() { return state; } public void setState(String state) { this.state = state; } } /** * 用來存儲備忘錄(持有備忘錄實例):只能存儲,不能修改 */ class Storage { private Memento memento; public Storage(Memento memento) { this.memento = memento; } public Memento getMemento() { return memento; } } /** * 客戶端測試類 * * @author Leo */ public class Test { public static void main(String[] args) { /** * 創建原始對象 */ Original original = new Original("白天模式"); System.out.println("original初始狀態為:" + original.getState()); /** * 創建備忘錄 * * 注意:original.createMemento()會將初始state(白天模式)傳給Memento對象 * * 以備需要的時候可以調用storage.getMemento()來拿到該state(白天模式)狀態 * * 相當于state(白天模式)這個狀態已經委托給了storage這個對象來保存 */ Storage storage = new Storage(original.createMemento()); original.setState("夜間模式"); System.out.println("original修改后的狀態為:" + original.getState()); /** * 恢復備忘錄 */ original.recoverMemento(storage.getMemento()); System.out.println("original恢復后的狀態為:" + original.getState()); } } ~~~ ##三、總結 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>

                              哎呀哎呀视频在线观看