简单工厂违背了开放封闭原则,在新增功能时,需要修改工厂,这样不是一个好事情。工厂方法模式解决了这个问题。
工厂方法模式 有多个工厂,每个工厂生产一种型号的产品,客户需到不同工厂 方法类与上面一致,将原有的一个工厂拆分成多个工厂,有多少个产品就有多少个工厂 代码: public Interface IFactory { BaseOperate CreateOperation(); } public AddFactory:IFactory { public BaseOperate CreateOperation() { return new AddOperate(); } } public MinusFactory:IFactory { public BaseOperate CreateOperation() { return new MinusOperate(); } } ...... static void main(string[] agrs) { IFactory factory=new AddFactory(); BaseOperate opt =factory.CreateOperation(); opt.GetResult(); }在工厂方法中出现一个问题,一个工厂只能生产一个产品,但是我们经常是要在一个工厂生产一个产品的不同型号产品。接下来通过抽象工厂模式来解决这个问题。
抽象工厂模式 有多个工厂,每个工厂生产一种产品的多种型号的多个产品 代码: public IUser { }