流れるようなインターフェースはメソッドの名前が命。
そこで、最近はまっているのがラッパークラスを作る方法です。
Seasar2 付属の S2JDBC や、JavaScript ライブラリの jQuery でも採用されている方法です。
更新系のメソッドで this を戻り値で返しているのがミソです。
流れるインターフェースで日付操作するクラスは自分も作って使っています。おすすめです。
String dayOfWeek = new ISOCalendar() .addYears(1) .setMonth(2) .setDay(15) .getDayOfWeekText();
ただ、自分ならこういうメソッドにします。
ISOCalendar.now() .nextYear() .february() .day(15) ...
こうするとメソッドの数はめっさ増えますが、「現在の次の年の2月15日」と流れるように記述することができて、コードを読む場合もこのコードの意図するところが読み取りやすくなります。流れるようなインターフェースはメソッドの命名が超重要。偉い人いわく「単なるメソッドチェーンとは違うのだよ!メソッドチェーンとは!」
とは言うものの、どっちがいいかは好みによると思う。Calendar 操作を拡張するラッパーだと意識するならば Calendar に近い思考で使える addYears といったメソッド名の方が使いやすいでしょう。