流れるインターフェースを使わない理由

MirageはS2JDBCクローンと言ってもよいと思いますが、S2JDBCの流れるインターフェースは継承していません。これには理由があります。
流れるインターフェースはコードは書きやすいのですが、拡張が面倒なのです。たとえばS2JDBCでAutoSelectに新しいメソッドを追加しようとしたら、AutoSelectだけでなくJdbcManagerも修正する必要があります。しかもAutoSelectのインターフェース自体をいじることはできないので、もしAutoSelectにメソッドを追加した場合も、戻ってきたAutoSelectをキャストして使用する必要があります。
実際にS2JDBCを使用していて上記のような点に不満を感じたたため、Mirageでは流れるインターフェースは採用していません。拡張する場合はSqlManagerを継承すれば大抵のことはできるようになっていると思います。また、拡張することを想定した拡張ポイントも用意していきたいと思っています。