简单工厂:一个工厂类根据传入的参量决定建立出哪种产品类的实例spa
直接一个工厂类,内部经过对象
swith(operator) {接口
case"+": oper=new AddOperation();//产生对象产品
...it
而工厂方法模式:定义一个用于建立对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。io
定义一个接口 DAO扩展
Add类实现该接口:AddDAO implements DAO{。。。//产生对象}方法
客户端代码: DAO dao=new AddDAO();im
dao.createOper();//产生对象客户端
...
这样若是须要增长一个功能类,简单工厂须要修改工厂类,而工厂方法只要增长一个类(实现DAO接口)产生相应的功能对象,
这样对比正解释了开放-封闭原则,对扩展开放,对修改关闭。