我目前使用抽象工厂模式设置了一些 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,而对另一个使用外部服务?还是有不同的方法来实现这一点?