1.简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例
以一个计算器算法为例,每个会编程的人都会写出简单计算器的算法如:
代码实能现功完全没有问题,但是怎么保证代码的可维护性、复用性、扩展性呢?没错,那就需使用面向对象的思想,通过封装、继承、多态把程序的耦合度降低,利用设计模式使得程序更加灵活、容易修改、易于复用,怎么修改当前程序呢?
客户端
这里我用到了类的特性-封装,实现了界面与业务分离,现在我就可以在各个平台复用这个运算类(Operation)了,但是我现在需要添加一些复杂的运算,如开根号,有人说了,在上面的swtich加一分支不就可以了吗,这样一来,却使得原来运行好的功能代码模块发生了变化,如果修改错了,会产生很大风险,所以我们需要用到继承和多态来实现
首先是一个运算类,他有两个Num(数值)属性,存在一个虚方法GetResult(),每个加减乘除都写成运算类的子类,重写GetResult()方法,但是问题来了,计算器怎么知道我该实例化哪个类,使用哪个方法呢?简单工厂模式帮你解决
你只需输入运算符号,工厂就能实例化合适的对象,通过多态返回父类的方式实现了计算器的结果
这样我们只需添加复杂的运算类,在修改工厂类就可以了
简单工厂模式---计算器实现类结构图
欢迎您关注Aeric讲堂,微信号:AericStudio或搜索Aeric工作室
简单工厂模式笔记链接:http://pan.baidu.com/s/1eSLiJFc
架构图:http://pan.baidu.com/s/1c22pVjy