質問: インターフェースとは ちょっとよく理解していないのですが (メリットとデメリットがハッキリしていない現状です。) 共同開発プロジェクトではインターフェースは欠かせないもの なのでしょうか? 逆に個人レベルでアプリケーションを作成する場合などには インターフェースを自作したりするべきではないのでしょうか? インターフェースを理解するにあたって おすすめの書籍などあったら教えてください。
回答: 開発手法にも依りますが、僕の場合、まずインタフェースを定義してから実装することが多いです。(すべてではないですが) インタフェースをimplementsするクラスは、インタフェースによって仕様が決められているため、実現方法や内部の状態について、これを利用する側に影響がすくないという利点があります。 たとえば、 interface book{} class novel implements book{} class comic implements book{} があり、これを利用するクラス class provider{} は、bookについて知りたいとき、bookがどのような実装であれ、providerはインタフェースが定めるbookの状態を知ることができます。