Memento の定義: memento は、将来そのオブジェクトを最初に保存された状態に復元できるように、別のオブジェクトの内部状態のコピーを保存するオブジェクトです。
Memento モードは比較的理解しやすいです。次のコードを見てみましょう:
public class Originator { private int number; private File file = null; public Originator(){} // 创建一个Memento public Memento getMemento(){ return new Memento(this); } // 恢复到原始值 public void setMemento(Memento m){ number = m.number; file = m.file; } }
Memento クラスをもう一度見てみましょう:
private class Memento implements java.io.Serializable{ private int number; private File file = null; public Memento( Originator o){ number = o.number; file = o.file; } }
Memento は、Originator に数値とファイルの値を保存していることがわかります。 。 Originator の番号とファイルの値が変更された場合は、setMemento() メソッドを呼び出すことで復元できます。
Memento モードの欠点は、内部状態が多数ある場合、別のコピーを保存すると意図せずに大量のメモリが浪費されることです。
Jsp+Javabean での Memento パターンの適用
Jsp アプリケーションでは通常、名前やメールアドレスの入力が必要なユーザー登録など、ユーザー入力を必要とするフォームが多数あります。ユーザーが「送信」を押した後、Jsp プログラム検査によって実際に未入力の項目があることが判明し、その項目の下に警告またはエラーが赤色で表示されることが望まれます。同時に、ユーザーが入力したばかりのテーブル項目も表示されます。
下の図に示すように、名はユーザーによって入力されていますが、姓は入力されておらず、赤いテキストの警告が表示されます
このテクノロジーの実装では、 Javabean のscope="request" またはscope="session" 機能、つまり Memento モード。
Java デザインパターンにおける Memento パターン (Memento パターン) の導入に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。