【发布时间】:2012-02-10 18:18:02
【问题描述】:
我目前有一些使用抽象工厂模式设置的 DAO。它看起来像这样:
public abstract class DaoFactory
public static GetDaoFactory()
public abstract IPersonDao GetPersonDao()
// etc.
静态GetDaoFactory() 返回底层SqlDaoFactory。直到今天,所有的 Daos 都使用同一个 SQL 数据库。现在,我想向这个工厂添加另一个 DAO,但是 DAO 将与外部服务而不是 SQL 数据库交互(假设这是GetCompanyDao())。我基本上只想将此GetCompanyDao() 方法添加到抽象DaoFactory 类中,以便公共接口与底层实现完全解耦(无需/方式来判断特定dao 是使用SQL 还是外部服务)。
我是否应该简单地将SqlDaoFactory 重命名为更合适的名称并在其中包含GetCompanyDao() 方法,以便这个DAO Facotry 现在对某些DAO 使用SQL,对另一个使用外部服务?或者有什么不同的方法可以做到这一点?
【问题讨论】:
标签: design-patterns dao abstract-factory