私のプロジェクトには、ドキュメント管理システムがあります。基本Document
クラスといくつかの派生クラスがあります。DocumentManager
ドキュメントを開く/閉じる/アクティブにする操作を管理するクラスもあります。
およびそのDocument
派生クラスは、ロード、クローズなどの際に何かを実行する必要がある場合がありますが、状態の変更はマネージャー クラスによって制御されるため、現在、クラスによって呼び出されるクラスにはOnLoaded()
、などの (仮想) メソッドがあります。これらのメソッドを公開する必要がないように思われることを除けば、問題なく動作します。OnClosed()
Document
DocumentManager
別の設計は、DocumentManager
クラス起動イベントを作成し、各Document
インスタンスをこれらのイベントにサブスクライブすることです。私見では、大きな違いはありませんが、メモリリークのリスクが生じます。
私は、これらのどれもが「解決策」ではなく、問題に対するベスト プラクティスがあると直感的に感じています。誰か教えてください。