免責事項: この一連のブログの参考資料は、Cheng Jie 著の「Dahua Design Pattern」です。
Memorandum は、クローズドを破壊しないことを前提として、オブジェクトの内部状態をキャプチャし、その状態をオブジェクトの外部に保存します。これにより、後でオブジェクトを元の保存状態に復元できます。
s using using ' s through using ' s through through 's to ‐ to ‐ ‐ ‐ w , ‐
1. イニシエーター (ゲームロール): 現時点での自身の内部状態を記録するメモの作成を担当し、そのメモを使用して内部状態を復元できます。発信者は、必要に応じて、メモにどの内部状態を保存するかを決定できます。
2. メモ (RoleStateSaveBox): イニシエーター オブジェクトの内部状態を保存し、イニシエーター以外の他のオブジェクトがメモにアクセスできないようにします。メモには 2 つのインターフェイスがあります。管理者はメモの狭いインターフェイスしか見ることができず、メモを他のオブジェクトに渡すことしかできません。ただし、開始者はメモの幅広いインターフェイスを認識するため、以前の状態に戻すために必要なすべてのデータにアクセスできます。
3. マネージャー (GameRoleStateManager): メモへのアクセスを担当しますが、コンテンツにアクセスしたり操作したりすることはできません。 ::
2. このモードはイニシエーターを簡素化します。イニシエーターは内部状態のバージョンを管理および保存する必要がなくなり、クライアントは必要なこれらの状態のバージョンを管理できるようになります。
欠点:
1. イニシエーター ロールのステータスをメモ オブジェクトに完全に保存する必要がある場合、メモ オブジェクトはリソース消費の点で非常に高価になります。
2. 担当者がメモを保存する場合、担当者はこのステータスがどれだけの記憶領域を占有するかを知らない可能性があるため、操作が高価であるかどうかをユーザーに思い出させることができません。
私のビデオコースをフォローしていただきありがとうございます。アドレスは次のとおりです、ありがとうございます。
PHP オブジェクト指向デザインパターン