私は、アカウントとオペレータの2つのクラスを持っています。アカウントにはオペレーターのリストが含まれています。今、オペレータ(リスト内の)がメッセージを受け取るたびに、ビジネスロジックを実行するAccountオブジェクトに通知する必要があります。通知するコンテナオブジェクト:ベストプラクティス
1)コンテナ[アカウント]オブジェクトへのオペレータ内の参照を保持し、直接メソッドを呼び出します。
は、私はこれを達成するためにどのように3つの選択肢を考えます。循環参照のために絶対に良いわけではありません。
2)イベントを使用します。私が知る限り、Pythonには組み込みのイベント処理機構はありません。だから、これは実装するのが少し難しいです。
3)オペレータに直接メッセージを送信しないでください。代わりに、Accountsのみを処理し、内部的にはハンドラ演算子を使用します。この場合、私は演算子への参照を渡すことができないので、これは少し制限しています。
アーキテクチャの観点から、どのアプローチが最も有利なのでしょうか。どのようにこのタスクを処理しますか?
Pythonでスニペットを指摘できれば幸いです。
+1 - Python 2.5を使用していて__del__メソッドを定義していない限り、循環参照はちょうど大きくありませんもう取引する。 –
@ Jason Baker:Pythonを7年間使用していましたが、__del__メソッドを決して定義していませんでした。双方向関係に問題はなかったので、定期的に使用してください。彼らは2.2まで偉大な仕事をしました。 –
これは、すべての循環参照を追跡していることはわかりませんでした。しかし、何らかの理由で__del__メソッドを定義するとどうなりますか?私はまだそれらを手動で追跡する必要があります、そうですか? –