前回の記事「PHPのビルダーパターンの詳細分析」ではPHPのビルダーパターンについて紹介しましたが、次の記事ではPHPデザインパターンのメモパターンについて理解していきます。
メモ、この名前は実際にその機能を非常にわかりやすく説明しています。典型的な例は、もともとハードディスクゲームをプレイしたときのアーカイブ機能です。これから直面する大きなボスが心配なときは、通常、最初に進行状況のアーカイブを保存します。挑戦に失敗した場合は、アーカイブを直接読み込んでBOSSに挑戦する前の状態に戻すことができ、しばらく楽しく練習して再び大BOSSを解くことができます。ただし、念のため、BOSS に挑戦する前にファイルを保存しておくことをお勧めします。もう 1 つの例は、プログラマーが毎日使用するコード管理ツールである Git または Svn です。各提出はアーカイブのバックアップのようなもので、新しいコードに問題がある場合は、ロールバックして回復するだけです。これらはメモモードの代表的な応用例ですので、一緒に見ていきましょう。
GoF 定義: カプセル化を破壊することなくオブジェクトの内部状態をキャプチャし、この状態をこの外部に保存します。物体。このようにして、オブジェクトを元の保存状態に復元できます
#GoF クラス図:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
メモは非常にシンプルで、ステータスを記録するために使用されます。この状態をオブジェクトの形式で保存すると、作成者はさまざまな状態を記録する多数のアーカイブを簡単に作成できます。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
マネージャークラスとも呼ばれる担当者はメモを保存し、必要なときにここからメモを取り出します。保存のみを担当し、メモを変更することはできません。複雑なアプリケーションでは、プレイヤーが選択できる複数のアーカイブ レコードを選択的に表示できるゲームと同様に、これをリストにすることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
クライアント呼び出しで、発信者は状態を初期化して保存し、その後状態を人為的に変更しました。このときは担当者を通じてステータスを復元するだけで済みます。
端的に言えば、メモ モードは、外部クラス B に A の内部状態を保存させ、適切なタイミングでその状態を簡単に復元することです。#完全なコード: https://github.com/zhangyue0503/designpatterns-php/blob/master/17.memento/source/memento.php
##例今回はテキスト メッセージを送信する例に戻ります。通常、テキスト メッセージや電子メールの送信などの機能を実行する場合、送信するコンテンツをデータベースまたはキャッシュから読み取って送信するキューが存在します。成功した場合は無視され、失敗した場合は、メッセージのステータスが表示されます。テキスト メッセージは失敗または再送信に変更されます。ここでは、直接前の未送信状態に戻し、次の送信キューが再度送信を行うのを待ちます。
完全なソース コード: https://github.com/zhangyue0503/designpatterns- php /blob/master/17.memento/source/memento-message.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
|
说明
原文地址:https://juejin.cn/post/6844903983555805192
作者:硬核项目经理
推荐学习:《PHP视频教程》
以上がPHPのメモモードについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。