ホームページ  >  記事  >  バックエンド開発  >  PHPデザインパターン - メモパターン

PHPデザインパターン - メモパターン

WBOY
WBOYオリジナル
2016-06-23 13:33:05846ブラウズ

免責事項: この一連のブログの参考資料は、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): メモへのアクセスを担当しますが、コンテンツにアクセスしたり操作したりすることはできません。 ::


1. イニシエーター オブジェクトの一部の内部情報をイニシエーター オブジェクトの外部に保存する必要がある場合がありますが、イニシエーター オブジェクト自体によって読み取られる必要があります。このとき、メモ パターンを使用してシールドできます。カプセル化の境界を適切に維持できるように、他のオブジェクトからの複雑なイニシエーターの内部情報。

2. このモードはイニシエーターを簡素化します。イニシエーターは内部状態のバージョンを管理および保存する必要がなくなり、クライアントは必要なこれらの状態のバージョンを管理できるようになります。


欠点:

1. イニシエーター ロールのステータスをメモ オブジェクトに完全に保存する必要がある場合、メモ オブジェクトはリソース消費の点で非常に高価になります。

2. 担当者がメモを保存する場合、担当者はこのステータスがどれだけの記憶領域を占有するかを知らない可能性があるため、操作が高価であるかどうかをユーザーに思い出させることができません。


私のビデオコースをフォローしていただきありがとうございます。アドレスは次のとおりです、ありがとうございます。

PHP オブジェクト指向デザインパターン

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。