DF对工厂方法模式的定义是:定义了一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
工厂方法模式 对 简单工厂模式的改变在:将switch中的判断变成了一个个子类。
这样做虽然增加了很多类,但是它是有好处的。因为工厂方法更利于扩展,添加功能只需创建子类即可无需修改switch中的代码。
例如:
interface IFactory { Operation CreateOperation(); }
class AddFactory extends IFactory { ppublic Operation CreateOperation() { return new OperationAdd; } }
class SubFactory extends IFactory { public Operation CreateOperation() { return new OperationSub(); } }
在Main函数中可以这样使用:
IFactory operFactory=new AddFactory(); Operation oper=operFactory.CreateOperation(); oper.NumbetA=1; oper.NumberB=2; double result=oper.GetResult();
在工厂方法模式中,每一个子工厂都依赖了相应的子类。