interfaceの説明責任

いわゆる、Javaなどのinterfaceについてすこし。
interfaceというのは実装部がなく実装クラスにあるべきメソッドの仕様だけを示したものだ。
実装を隠蔽したいときとか、様々な実装があり得る場合にinterfaceはよく使われる。

たとえば、Java標準APIでいえば、java.sql.Conectionあたりがそうだ。ConectionインターフェースはOracleやらMySQLやらDB2など様々なデータベースに同じ方法で接続できるようにするために存在している。
java.sqlパッケージあたりをひっくるめてJDBCの仕様を規定している。

さて、これらのインターフェースについてJavaDocを見てみると他のクラス同様事細かに使い方が書いてあることがわかる。いや、実装部を意識している記述まであるのでそれ以上か?

また、interfaceの一つの効用である実装を隠蔽化するという点において使う側にたってみると実装が見えないのだからインターフェースにかかれたJavaDocコメントこそ使い方を知る唯一の手段と言っていい。つまりなにを言いたいか……interfaceこそJavaDocコメントをしっかり書こうということ。
実装部を求めて検索をかけるのは疲れました……。