リポジトリのデザインパターンに関する質問、多くのデータソースとのやりとりの方法があります。例えばリポジトリのデザインパターン
、私はこれらのリポジトリがあります。
- UserRepositorySql
- UserRepositoryMongoを
- UserRepositoryXml
(これは私が各データソースのリポジトリを作成する意味でも正しいですか?? )
何が良いですか:
UserRepositoryと呼ばれる抽象クラスと、その他のものはUserRepositoryから拡張されています。
これらの3つのリポジトリのインターフェースです。私は抽象クラスを使用している場合、私は私の特定のリポジトリオブジェクトを返しますUserFactory(工場出荷時のパターン)クラスを実装することができ、特定のデータソースの特定のリポジトリを取得する方法に
イム明確ではありません。 (これは正しいですか?)
しかし、インターフェイスを使用すると、どのように特定のリポジトリを取得できますか? (工場のパターンは親の抽象クラスを必要とするので、私はそうですか?)
また、私は "特定のリポジトリ"と言うとき、特定のデータソースを持つリポジトリを受け取ります。
ありがとう、 redigaffi。 UserRepositoryという抽象クラス
と他のものがUserRepositoryから延びる:
また、抽象クラスを使用するアイデアは悪くないですか?私の考えは、インターフェイスを使用する唯一の "遺産"の方法だった。あなたの答えをありがとう、どちらの方法も有効な解決策かもしれない? – redigaffi
それぞれのアプローチには長所と短所があります。抽象基本クラスは、共有ビヘイビアーを定義する能力を与えますが、インターフェースはそうではありません。 –