抽象ファクトリパターンを使用してDAOを設定しています。それは次のようになります。DAO /抽象ファクトリパターン - 複数のデータソース
public abstract class DaoFactory
public static GetDaoFactory()
public abstract IPersonDao GetPersonDao()
// etc.
静的GetDaoFactory()
は、基礎となるSqlDaoFactory
を返します。今日まで、すべてのDaosは同じSQLデータベースで作業してきました。今、別のDAOをこのファクトリに追加したいと思いますが、DAOはSQLデータベースの代わりに外部サービスと対話します(これはGetCompanyDao()
としましょう)。このGetCompanyDao()
メソッドを抽象的なDaoFactory
クラスに追加するだけで、パブリックインターフェイスは基本的な実装から完全に切り離されます(特定のDAがSQLまたは外部サービスを使用しているかどうかを知る必要はありません)。
SqlDaoFactory
の名前を変更してGetCompanyDao()
メソッドを含めるだけでよいので、このDAOファセットはいくつかのDAOにSQLを使用し、もう一方は外部サービスを使用するようにする必要がありますか?あるいは、これを達成するための別の方法がありますか?