流れるようなinterface(fluent interface)

流れるようなInterfaceって大まかにいうと下記の主張をしている。

静的な型付き言語だと、流れるようなインタフェースをライブラリが用意してくれていると、バグの発生が少なくなる。なぜかというと普通よく見かけるプログラミングでは戻り値に変数String resultに値が帰ってくるだけだが、そのresultの使い方の選択肢は無限にあり、その選択肢にはバグの選択肢がたくさんふくまれているからなのだ。

ところが、流れるインタフェースでは正解となるインタフェースしか用意されていない。 結果を処理するクラスとメソッドを探す手間が不要で、間違いがない。だからバグが少ないのだ。

自分の意見

自分は昔から、流れるようなインタフェースでプログラムをつくってきた。流れるようなインタフェースを作る時の留意する点は下記のとおりである。

JavaAssist?は動的にクラスを作り、しかもバイトコードなので、実際のIDEを使ったコーディング時に、流れるインタフェースを使う用途には、向いていない。

例はJMockのソースコード

mock.expects(once()).method("m").with( or(stringContains("hello"),
                                          stringContains("howdy")) );

Martin Fowler's Bliki

http://martinfowler.com/bliki/

日本語訳

http://capsctrl.que.jp/kdmsnr/wiki/bliki/

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS