2009-03-25 8 views
4

メレントのデザインパターンでは、ケアテイカーをオリジネーターの集合体とするのは間違っていますか?メメントの正しい実装

答えて

6

必ずしもそうではありません。 Mementoの主な目的は、さまざまなOriginatorを統一された透明な方法で扱うことができることです(Mementoを入手して後で元の状態に戻す)。

集約関係が必ずしもそれを妨げるわけではありません。 Caretakerの異なるインスタンスは、異なるOriginatorの集まりである可能性があります(ただし、CaretakerのインスタンスはOriginatorのインスタンスを1つしか扱いません)。それでも透明な状態復元のメリットがあります。

+0

私はMementoクラスの静的変数に格納できますか? – gaussblurinc

1

いいえ、それがあなたの状況に適したものであれば問題ありません。ケアテイカーの国家はメンメントに保存されているものの一部ではないことを理解することは、大きな飛躍ではありません。

関連する問題