0

Active Object patternを実装しようとしています。すべてのサンプル実装で、ActivationQueue はメッセージ キューへのアクセスを同期しています。なぜこのクラス内で行われるのか考えています。Scheduler が ActivationQueue へのアクセスを同期していない理由。この ActivationQueue オブジェクトにアクセスする唯一のオブジェクトです。ここでの同期は非常に簡単です。質問は - ActivationQueue へのアクセスを同期するためのより良い場所はどこですか - スケジューラーまたは ActivationQueue 自体の中で?

ありがとうございました

4

2 に答える 2

0

Lavender と Schmidt による元のアプローチではスケジューラのみがキューにアクセスすることは正しいですが、キューに同期を実装することをお勧めします。2 つの理由があります。

  1. 問題 (不一致の可能性) とその解決策 (同期) がより適切に結び付けられるため、保護されたオブジェクトを同期する方が明確な設計です。
  2. リクエストが(外部エンティティによって)キューに直接スケジュールされ、スケジューラが「のみ」並べ替えを決定する AO の実装があります。
于 2013-04-22T06:57:15.143 に答える