メソッドチェーン | Programming Place Plus 用語集

トップページ用語集

名称 🔗

解説 🔗

オブジェクト指向プログラミング言語で使用できる構文で、メソッドオブジェクトを返すことを利用して、メソッドの呼び出しを次々と繋げていくものです。

メソッドを呼び出す構文が obj.m1(x) のように、オブジェクト(インスタンス)とメソッド名、引数、そして戻り値という形式になっているプログラミング言語で、戻り値がオブジェクトであれば、obj.m1(x).m2(y).m3(z) のように連続的に呼び出すことができます。

メソッドチェーン内のメソッドは、呼び出しの元になったオブジェクト(よく this や self で表現されるもの)を返すようにすることが基本ですが、メソッド内で新しいオブジェクトを生成して返すことでも実現できます。ただし、どのオブジェクトを操作しているのか分かりづらく、誤解を与える可能性もあるため注意が必要です(イミュータブルな考え方を適用する場合には、新しいオブジェクトを生成して返すほうが自然ではあります)。

また、あまりにも呼び出しの連鎖が長引いたり、渡す引数が多かったりすると、かえって可読性を落とす結果になることもあります。

よけいな変数を導入する必要がなく、1文で簡潔に記述できるメリットがあります。Builderパターンと呼ばれるデザインパターンは、メソッドチェーンを活用する代表的な例です。

デメリットとして、途中の結果を確認しづらいことが、デバッグをやりづらくする可能性があります。オブジェクトを返すことに戻り値を使ってしまうため、エラー値などのほかのを返せないことが不便になることもあります。


参考リンク 🔗

更新履歴 🔗


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る