简单工厂模式 模式引入 问题描述 小菜参加面试,面试要求用面向对象语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。要实现这一程序并不困难,但若未来该程序要增添新的运算符号,而仍想使用这个程序的话,程序应当要设计得耦合性低些,尽量减少增加功能时需要的改动。同时,应该考虑把计算部分独立出来,这样如果未来该windows程序迁移到web版,计算部分也不需要修改。 模式定义 是用一个单独的类来实现具体的实例化过程,避免客户端对具体实例化过程的显式指定。 问题分析 可以用于这个问题。将加减乘除等运算类独立实现,并创建工厂类维护对运算类的使用。之后若需要增加新的运算符号,则只需增加运算类,修改工厂类即可,这也同时降低修改后的重复编译量(松耦合)。