10

私はまだ循環参照の危険性を理解しようとしています。まれな場合にのみ使用する必要があるとよく読みます。ただし、正規の状態パターンでは、「状態」オブジェクトは遷移を引き起こすために「コンテキスト」オブジェクトを参照する必要があり、「コンテキスト」オブジェクトはその動作をトリガーするために「状態」オブジェクトを参照する必要があります。

これは循環参照ではありませんか?そうでない場合、循環参照とどのように関係していますか? もしそうなら、なぜこれが受け入れられるのですか?

http://en.wikipedia.org/wiki/State_pattern

http://source Making.com/design_patterns/state

4

1 に答える 1

8

2 つのオブジェクトは、必ずしも相互に参照しなくても相互に操作できます。一般に、循環参照は、クラス A と B の両方が他方を参照するメンバー変数を持っている場合です。ウィキペディアの記事で実装されているように、循環参照はありません。Context は State への参照を格納しますが、Context はメソッドへのパラメーターとして State に渡され、State なしでメソッドの実行が終了すると範囲外になるためです。それへの参照を保存しました。

于 2012-07-22T06:16:13.623 に答える