チェーンに渡されるオブジェクトとしてHashMapを使用し、ハンドラーによって新しいコンテンツが追加される可能性があるCoRパターンの実装例を見てきました。以下のコードの概要:
class HandlerImpl implements Handler {
Handler next;
void handle(HashMap context) {
// do handler logic, perhaps adding new stuff to "context"
if (next != null)
next.handle();
}
}
context
ハンドラーは、コードを繰り返さずにハンドラーをフォローすることで使用できる新しい情報でを拡張できるため、使いたくなります。一方、ハンドラーは相互に依存するようになります。ハンドラーはまだ緩く結合されていますが、それでも、ハンドラーの順序はますます重要になります。
このコードは臭いですか?コンテキストオブジェクトに新しい情報を追加せずにCoRパターンを使用できないことがわかった場合、そのような場合に使用する適切なパターンは何ですか?