はじめに このシリーズでは、Java8で導入されたラムダ式・Stream APIを利用した、デザインパターンの実装方法を検討していきます。前回の記事はTemplate Methodパターンを取り上げました。 サンプルコードはGitHubに上げています。 今回のパターン Chain of Responsibility は「責任の連鎖」と訳されますが、その名が示すとおりチェーン状に構成されたオブジェクトが次々と責任を受け渡していくことで問題を解決するパターンです。 クラスの静的構造は以下の図のようになります。 実際には ConcreteHandler1のインスタンス -> ConcreteHandler2のインスタンス -> ... -> ConcreteHandlerNのインスタンス というように複数のハンドラがつながった構造となります。 クライアントはチェーンの先頭のハンドラにリクエストを