Mementoの定義:Mementoは、別のオブジェクトの内部状態のコピーを保存するオブジェクトであり、オブジェクトを将来元の保存状態に復元できるようにします。
Mementoモードは比較的理解しやすいです。次のコードを見てみましょう。
コードコピーは次のとおりです。
パブリッククラスのオリジネーター{
プライベートINT番号;
プライベートファイルファイル= null;
public Originator(){}
//記念品を作成します
Public Memento getMemento(){
新しい記念品(これ)を返します。
}
//元の値への復元public void setMemento(memento m){
番号= M.Number;
file = m.file;
}
}
記念品のクラスを見てみましょう:
コードコピーは次のとおりです。
プライベートクラスの記念品はjava.io.serializableを実装しています{
プライベートINT番号;
プライベートファイルファイル= null;
Public Memento(Originator O){
番号= O.Number;
file = o.file;
}
}
オリジネーターの数とファイルの値が記念品に保存されていることがわかります。 Originatorの数値とファイル値が変更された場合、SetMemento()メソッドを呼び出すことで復元できます。
Mementoモードの欠点は、多くの内部状態がある場合、非常に多くのメモリを無駄にする別のコピーを保存します。
JSP+Javabeanでの記念モードの適用
JSPアプリケーションでは、通常、ユーザーの登録など、ユーザーが入力する必要があり、フォームアイテムが誤って入力されていない場合は、JSPプログラムの後に渡されない場合は、多くのフォームがあります。ユーザーは「送信」を押します。確認すると、実際に記入されていないアイテムがあります。同時に、テーブルアイテムの下のレッドテキストにエラーが表示されます入力したばかりのユーザーも表示されます。
以下の図では、最初の名前がユーザーによって入力されており、姓は入力されていません。赤い警告が促されます。
このテクノロジーの実装は、scope = "request"またはscope = "session" javabeanの特性、つまり記念モードを使用することです。