書籍『Java : The Good Parts』 [献本]
出版社より献本していただきました。まだ、全部は読んではいませんが、Javaの発展の中心にいた人が書いた本というのは、新たに学ぶことがあるのではないか、あるいは、重要な事柄を再認識できるのではないかと期待して読み始めています。
まだ読み始めたばかりですが、第2章「型システム」では、インタフェースに関して次のように述べられています。
インタフェースを使う最大の理由を知るには、インタフェースがシステムの全体設計をどのように明確にするのかを知らなければならない。適切に設計すれば、ひとつのインタフェースはひとつの意味的な単位を定義するものになる。すなわちインタフェースとは、相互に意味を与え合うオペレーションのまとまりを定義するものだ。インタフェースはそれ自体、Javaプログラムや、それらプログラムを使ったシステムにおける、意味の基本単位と考えるべきである。このインタフェースと意味との関係は、一般的にはあまり理解されていないところだ。これは、非常に本質的な説明となっていますが、初心者にはおそらく何を言っているのか分からないと思います。1996年にJavaを独学し始めた頃の私もインタフェースを当時は全く理解できていませんでした。『Java: The Good Parts』(11頁)
同時に、十分な知識も経験もないエンジニアに重要なAPI設計をさせているソフトウェア開発組織は、最初から技術的負債を作り込んでいるし、きっとこのような書籍を読んだりもしないんだろうなと思ったりもしました。
2011-02-20 11:03
nice!(0)
コメント(2)
トラックバック(0)
> 1996年にJavaを独学し始めた頃の私もインタフェースを当時は全く理解できていませんでした。
その同じような頃、私は仕事ではC++を使用していたのですが、Javaのinterfaceは、C++の純粋仮想関数だけを定義したクラスと同じようなものかな? と考えていました。会社のC++研修とかではそういう設計を解説してましたし...。
by 高橋智宏 (2011-03-18 14:54)
C++で純粋仮想関数だけを定義してクラスの設計は、1993年ぐらいから行っていました。しかし、それは、APIを設計する際に、完全に実装を隠蔽するためでした。
( http://www012.upp.so-net.ne.jp/eshibata/pdfs/apibasics.pdf )
しかし、Javaのインタフェースの役割に相当する使い方をしていなかったため、Javaのインタフェースの役割が全く理解できなかった訳です。
2000年から従事したプロジェクトでは、逆に、インタフェースによる型定義をC++で積極的に導入して、様々なライブラリー群を設計していました。
by Yoshiki (2011-03-19 05:05)