http://martinfowler.com/bliki/InterfaceImplementationPair.html すべてのクラスをインタフェースとペアにする手法である。 たとえば、ICustomerとCustomer、CustomerとCustomerImpl?のようなペアができる。 この場合、インタフェースと実装の型が分かれてしまうが、 これは、各クラスにヘッダファイルを付けるというC/C++の慣習を踏襲しているためである。 この手法のメリットは、 インタフェースの実装を別のものにすることで、 いつでも丸ごと入れ替えることができる点である。 ただ、私はこの手法があまり好きではない。 複数の実装がないのにインタフェースを使ってしまうと、インタフェースと実装とを同時に変更しなければならない分、手間がかかるからだ(IDEが補完してくれるが、やはり面倒だ)。 また、これだと裏に複数の