简单工厂模式 工厂方法模式 抽象工厂模式 区别 比较 特点 (相似设计模式系列之一)
http://hi.baidu.com/dancesimply/item/74f00a7d50e701346cc37cac
简单工厂模式
将产品抽象出一个接口,在工厂函数中使用 Switch-Case 判断生产哪个具体产品,并返回具体产品的父接口引用。
工厂方法模式
1 除将产品抽象出一个接口以便实现多态,还将不同的工厂进行细分,统一继承自一个接口,将简单工厂中的判断移至客户端。实现了 开-闭原则。
2 客户端若使用一个工厂对象生产多个产品,简单工厂需要修改每个生产函数的参数,工厂方法模式只需修改初始化语句。
抽象工厂模式
1 在工厂方法模式的基础上,抽象出多个系列产品,每个系列产品都具备统一的具体产品类型组成,所有系列中的每组类型对应一个具体工厂类。
2 在更改产品类型时,只需更改一次工厂初始化语句。
3 也可用简单工厂配合抽象工厂系列,以消减工厂类的代码量。
可以比较不同数据库不同数据表的例子
简单工厂模式
将产品抽象出一个接口,在工厂函数中使用 Switch-Case 判断生产哪个具体产品,并返回具体产品的父接口引用。
工厂方法模式
1 除将产品抽象出一个接口以便实现多态,还将不同的工厂进行细分,统一继承自一个接口,将简单工厂中的判断移至客户端。实现了 开-闭原则。
2 客户端若使用一个工厂对象生产多个产品,简单工厂需要修改每个生产函数的参数,工厂方法模式只需修改初始化语句。
抽象工厂模式
1 在工厂方法模式的基础上,抽象出多个系列产品,每个系列产品都具备统一的具体产品类型组成,所有系列中的每组类型对应一个具体工厂类。
2 在更改产品类型时,只需更改一次工厂初始化语句。
3 也可用简单工厂配合抽象工厂系列,以消减工厂类的代码量。
可以比较不同数据库不同数据表的例子