大话设计模式之简单工厂模式

最近有一位朋友向我推荐了一本书《大话设计模式》,这本书刚刚送到手上,我还没开始阅读,希望通过博文的方式与大家一起分享,一起学习。

简单工厂模式的核心思想是,将创建对象的过程封装在一个单独的类中,这样就可以通过这个类来实例化不同的对象。例如,如果我们需要增加开根运算等新的运算类型,我们只需要在这个类中进行扩展即可,这就是工厂模式的魅力所在。让我们来看看这个类的实现方法。

简单运算工厂类如下所示:

class OperationFactory {     static createOperate(operate) {         let oper = null;         switch (operate) {             case "+":                 oper = new OperationAdd();                 break;             case "-":                 oper = new OperationSub();                 break;             case "*":                 oper = new OperationMul();                 break;             case "/":                 oper = new OperationDiv();                 break;         }         return oper;     } }

通过这个工厂类,我们只需要输入运算符号,工厂就会实例化出相应的运算对象。利用多态性,通过返回父类的方式,我们可以实现计算器的功能。

客户端代码的实现如下:

let oper; oper = OperationFactory.createOperate("+"); oper.NumberA = 1; oper.NumberB = 2; let result = oper.GetResult();

无论你是编写控制台程序、windows程序、Web程序、PDA还是手机程序,都可以使用这段代码来实现计算器的功能。如果有一天我们需要更改加法运算,我们只需要修改OperationAdd类即可。同样,如果我们需要增加其他复杂的运算,比如平方根、立方根、自然对数、正弦和余弦等,我们只需要增加相应的运算子类,并在工厂类的switch语句中增加新的分支即可。

不知不觉已经写到了结尾,这就是简单的工厂模式。以下是几个类的结构图,供大家参考。

大话设计模式之简单工厂模式

设计模式还有很多,期待后续的更新。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享