0

私は設計パターンを学んでおり、教科書の例を読んだ後、設計パターンの JDK 実装に焦点を当てています。

ReentrantLockjava.concurrent.Lock パッケージのクラスは、AbstractQueueSynchronizerロック機能を提供するために (AQS) を使用します。これはFacadeパターンの例だと思いますが、これについて他の人の意見を聞きたいです。

これが Facade である理由は、別のサブシステム AQS を使用して、ロックを処理するための簡素化されたインターフェイスを提供し、AQS を他の目的にも直接使用できるためです。

質問が明確でない場合は、コメントを入力してください(単純に反対票を投じても役に立ちません)

4

1 に答える 1

0

いいえ、ちがいます。

Facade は、クライアント (多くの場合、複雑な大規模システムの呼び出し元) に単一の一貫したビューを提示するために使用されます。そのため、呼び出し元は、この要求がどのモジュールにリダイレクトされ、その要求が別のモジュールに移動するかなど、その大きなシステム内で何も知る必要はありません。モジュール/コンポーネントなど

これをあなたの例と比較すると、lock は単に Lock インターフェイスの特定の実装であることがわかります。

于 2013-09-30T08:49:09.870 に答える