インターフェイス指向

何だろね。もっと前面に出てきてもいいはずなんだけど。
普通のプログラマには馴染まないのかな?インターフェイス指向。

オブジェクト指向とかアスペクト指向とかいろいろと違った見方が開発されてきてますが、普遍的に重要なのが「モジュール化」であることは各技法に共通なわけです。

で、モジュール化の肝はモジュール≒クラスの「インターフェイス」にあって、あらゆるモジュールは何らかの外部とのインターフェイスを持っているわけです。

で、モジュールをどうやって実現するかとか言うより先にこんなインターフェイスを持ったモジュールがあればこのプログラムは完成するなぁ、と考えるわけです。

インターフェイスが明確に決められる状況なら、そのモジュールの意味(役割=Role)も明確。明確にならないならそれは一つの interface(Java的表現)であることが不自然だったというだけで。

インターフェイスは、外部から与えられる得る情報と、想定する実装が必要とする情報を照らし合わせれば比較的早く決めることができます。
もちろんインターフェイス早期決定に向かないモジュールも存在しますが。そういう時は受け渡す情報自体をとりあえず抽象化しておけばいいわけで。

こうやって、実現に必要なインターフェイスは何か?という観点と、低レイヤ側で提供できる機能とそのために必要な情報は何か?という観点によってトップダウン/ボトムアップの両面から詰めていく方式をインターフェイス指向と呼ぶ、と認識しています。

今できることからやるという方式な訳です。問題が発生した時に adapter をかますのが楽なので、良いと思ってるわけですが…。
そういえば最近はこういう設計作業自体をあまりしてないから、確信を持っては薦められないか…しょうがない次のプロジェクトで実践しよう^^;。