2011-11-24 15 views
3

私は現在、スクリーンキャプチャソフトウェアを設計しようとしています。この循環依存関係を取り除く方法

私が持っている1つの設計上の質問PictureGetterとPictureProcessorの間の循環依存関係を排除することが可能かどうかを知りたい。

ゲッターは、画像が準備完了であることをプロセッサに知らせる必要があります。プロセッサは、画像の処理が完了したことをゲッターに伝えなければならない。

これらの2つの要素は別々のスレッドにあり、データを直接共有することはできず、データを共有したくない場合、対象オブジェクトのメンバー呼び出しをそのオブジェクトのキューキューに追加することができます。 (例えばqueue.add(&PictureProccessor::sendPicture,picture)

enter image description here

+0

http://www-subatech.in2p3.fr/~photons/subatech/soft/carnac/CPP-INC-1.shtml – Cyclonecode

+0

はい、私はすべてを宣言することができます。これは、私がその周りにデザインできる方法があるかどうかについての質問です。 – Lalaland

+0

あなたの質問は? – themel

答えて

6

ことの両方を認識させる、リソースマネージャを使用してください。ゲッターは、マネージャーで処理される画像をエンキューすることができ、マネージャーは、処理のために使用できるプロセッサーの「プール」を持つことができます。プロセッサは、処理された画像をリソースマネージャーにエンキューすることができ、適切なゲッターに通知することができます。私はこのパターンのためのいくつかのファンキーな名前があると確信していますが、今それを思い出すことはできません。

+0

ええ、これは私が探していたものです(私の画像管理の問題も解決しています)。ありがとうございました。 – Lalaland

0

getterからprocessorに1要素のキューを作成することがあります。

ゲッターが写真を送信します。プロセッサが完了すると、キューは空になります。

関連する問題