インターフェイスの実装のペア
2005年12月8日
あらゆるクラスを取り、インターフェイスとペアにする方法です。そのため、顧客と顧客、または顧客とCustomerImplなど、ペアになったオブジェクトが見えます。インターフェイスと実装は実際には別個のタイプですが、これは各クラスのヘッダーファイルを使用するC/C++の習慣と多くの点で似ています。
このアプローチの利点は、インターフェイスの実装を提供することで、いつでもどこでも完全に置き換えることができることです。
ただし、これは私が好んで使用してきた手法ではありません。複数の implementation を使用する予定のないインターフェイスを使用するのは、すべてを同期させるために余分な労力がかかります(ただし、優れた IDE が役立ちます)。さらに、実際に複数の implementation を提供するケースが隠れてしまいます。
多くの場合、アプリケーションクラスを書くのかライブラリを書くのかによって影響は異なります。アプリケーションでは、インターフェイスが必要になったのにない場合は、インターフェイスの抽出を実行するだけで完了します。公開されているライブラリでは、ユーザーはすぐにフィードバックを受け取れないため、公開されている型をインターフェイスにすることがはるかに便利です。ただし、PublishedInterfaceに実装クラスをそのまま模倣するのは、ほとんどの場合最善の策ではありません。インターフェイスは、クライアントのニーズに合わせて設計される必要があり、実装と一致しない場合がよくあります。