リポジトリパターンとファサードパターンの違いは何ですか?


9

私は自分のアプリケーションで常にリポジトリー・パターンを使用してきました。しかし、多くの人が命名規則にリポジトリではなくファサードを使用しているのを見てきましたが、操作は同じだと思います。なぜこの違いがあるのですか?それらの間には本当の違いがありますか?

回答:


11

ファサードはリポジトリよりも一般的です。

ファサードは永続性ベースではないものに適用できますが、リポジトリは基礎となるソースへのアクセスをカプセル化し、メモリ内のデータソースのように見せることを想定しています。

ファサードは、他のいくつかの複雑なインターフェースの単純なインターフェースを作成するためのものです。


したがって、リポジトリはデータ層と通信するように設計されており、ファサードはこれよりも一般的です。たとえば、ファサードは他の操作を実行できますが、構造はリポジトリのように設計されていますよね?
Mirko

1
@MirkoPastorelli-できます。ファサードの例は、実際には複数のサブシステムを処理する必要があるコードに単一のエントリポイントを与えることです。
Oded

4
@MirkoPastorelli:リポジトリはデータレイヤーとの通信用に設計されておらず、データレイヤーとの通信をラップして、リポジトリのユーザーから「これを引き離す」ように設計されています。(したがって、たとえば、ハードコードされたテストデータのみを提供し、他の依存関係がないテスト目的のモックリポジトリを提供できます)。この観点から見ると、レポは確かに特定の外観のファサードにすぎません。
Doc Brown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.