Dao デザインパターンや他のデザインパターンでインターフェースを使用する理由 質問する

Dao デザインパターンや他のデザインパターンでインターフェースを使用する理由 質問する

Dao デザイン パターンのコンポーネントを以下に示します。

データ アクセス オブジェクト パターン (DAO パターン) は、低レベルのデータ アクセス API または操作を高レベルのビジネス サービスから分離するために使用されます。データ アクセス オブジェクト パターンの参加者は次のとおりです。

データ アクセス オブジェクト インターフェイス - このインターフェイスは、モデル オブジェクトに対して実行される標準操作を定義します。

データ アクセス オブジェクトの具象クラス - このクラスは上記のインターフェイスを実装します。このクラスは、データベース/XML またはその他のストレージ メカニズムであるデータ ソースからデータを取得する役割を担います。

モデル オブジェクトまたは値オブジェクト - このオブジェクトは、DAO クラスを使用して取得したデータを格納するための get/set メソッドを含む単純な POJO です。

具体的なクラスがあるのに、なぜ INTERFACE が必要なのでしょうか。また、なぜそれを直接使用できないのでしょうか。これは素朴な質問かもしれませんが、このことを明確に理解できるように助けてください。DAO デザイン パターンだけでなく、他のデザイン パターンでも INTERFACE の使用は少しわかりにくいです。これはコードの再利用性と結合の低減に関連していると思います。しかし、もう少し詳しく説明してもらえませんか。

ベストアンサー1

DAO デザイン パターンだけでなく、他のデザイン パターンでも INTERFACE の使用は少し混乱を招きます。

インターフェースこれはJavaで最もよく使われる概念の1つです。例を挙げて説明しましょう。地図を見て、地図に表示されている方向に車を自動的に向ける車用のGPSデバイスを設計したとします。このGPSデバイスは、ベンツやフィアットなど多くの車で使用できます。車ごとに、左折または右折のメカニズムは、車のシステムの実装によって異なります。そのため、機能これらのメソッドは自動車メーカーによって書かれるべきであり、そのためこれらのメソッドは自動車メーカーによって自動車の実装に従って実装されるインターフェースに置かれる。インターフェースには関数のセットのみが含まれる。宣言これは自動車メーカーによって定義されます(この場合は)。わかりましたか?

インターフェースとその有用性について詳しくは、以下をお読みください。この記事

私の質問は、具体的なクラスがあるのになぜインターフェースが必要なのか、そしてなぜそれを直接使用できないのかということです。

以下の回答で指摘されている他の多くの利点の中でも、DAOインターフェースを実装するさまざまなデータ構造(Derby DB、巨大なスタックなど)用の多くのDAOクラスを作成できます。利点は、すべてのクラスをDAOインターフェース変数に格納できることです。多態性

おすすめ記事