Tag: abstract factory

在以下示例中使用抽象工厂而不是工厂方法有什么好处?

在写这个问题之前,我读了以下参考文献: 工厂方法与抽象工厂 抽象工厂与工厂方法(范围) 抽象工厂,工厂方法,生成器 工厂,抽象工厂和工厂方法 抽象工厂模式与工厂方法的区别 我看到像我这样的很多人都难以“掌握”抽象工厂和工厂模式之间的具体差异。 我不熟悉设计模式,我遇到了这个例子http://www.oracle.com/technetwork/java/dataaccessobject-138824.html ,我正在努力深化这个主题。 通过比较,我看到3 DTO我们有: 1)抽象工厂 1个抽象类(有3个抽象方法和3个switch-cases); 持久化类型的3个工厂类(每个类有3种获取DTO DAO的方法) 3个接口和9个DAO。 2)工厂方法: 3个工厂类,每个接口一个(每个有3个开关盒); 可能我可以创建3个超类来扩展DAO类而不重复代码,例如连接到数据库的代码; 3个接口和9个DAO。 从代码数量的角度来看,我没有看到任何实质性的差异。 如果您需要添加新的持久性支持或新的接口/ DTO,则差异很小(并且是互补的)。 从客户的角度来看: 1)抽象工厂: public static final int PERSISTENCE_TYPE = DAOFactory.ORACLE; DAOFactory daoFactory = DAOFactory.getDAOFactory(PERSISTENCE_TYPE); CustomerDAO cDAO = daoFactory.getCustomerDAO(); AccountDAO aDAO = daoFactory.getAccountDAO(); OrderDAO oDAO = daoFactory.getOrderDAO(); 2)工厂方法: public static final int PERSISTENCE_TYPE = […]