设计模式读书笔记之抽象工厂模式(Abstract Factory)

如果一个产品家族中有多个产品, 而工厂需要创建多个产品家族, 那么前例中的工厂方法就自然演化为抽象工厂.

比如我们在前面的工厂方法的基础上再添加创建DeptDao的功能.

//工厂接口
package designpattern.factory.abstractfactory;
import designpattern.factory.*;

public interface IFactory {
	public UserDao createUserDao();
	public DeptDao createDeptDao();
}

//
package designpattern.factory.abstractfactory;
import designpattern.factory.*;

public class DB2DaoFactory implements IFactory{
	public UserDao createUserDao() {
		return new UserDB2Dao();
	}

	public DeptDao createDeptDao() {
		return new DeptDB2Dao();
	}
}
//
package designpattern.factory.abstractfactory;
import designpattern.factory.*;

public class OracleDaoFactory implements IFactory{
	public UserDao createUserDao() {
		return new UserOracleDao();
	}
	public DeptDao createDeptDao() {
		return new DeptOracleDao();
	}	
}

 优点: 便于切换产品家族.

 

你可能感兴趣的:(设计模式,读书)