今天学习一个简单工厂模式:
一、描述
简单工厂模式又名静态工厂方法模式,是所有工厂模式中最简单的一个,它定义一个具体的工厂类来负责创建所有类的对象并初始化创建的对象,它主要由3部分组成:工厂类、抽象类、实现抽象类的具体类,然后通过客户端调用工厂类创建相应的对象。
注意:简单工厂模式不属于GoF总结的23种设计模式,它是相当于初学java的HelloWorld案例,帮助初学者了解设计模式,增长信心的一个设计模式。
栗子,是一个简单的计算功能,加、减、乘、除。
1>定义操作的抽象类
2、加法
3、减法

4、乘法
5、除法
简单工厂类:
6、测试
二、简单工厂模式的优缺点
优点:相对于直接在客户端创建对象并初始化对象的值来说,简单工厂模式将创建对象和初始化任务交给了工厂类,客户端只负责对对象的调用,从而明确了各个类的职责。
缺点:只使用一个工厂类来创建各具特色的所有类,当具体产品的种类不断增加,对创建的方式有所改变时就需要对这个工厂类进行不断的改变,增加相应的判断,增加相应的类的创建逻辑,导致工厂类的代码越来越庞大,不利于后期的维护。
另外,简单工厂模式使用静态方法来创建对象,这样就导致这个创建对象的静态方法不能被继承,只能在这一个类里变得越来越臃肿。
总结:虽然简单工厂模式将对象的创建和初始化工作与客户端分离了,实现了责任的分配策略,但是所有对象的创建和初始化工作都集中到了一个具体的工厂类中,如果要创建的对象种类繁多,这个工厂类将非常庞大,不利于后期维护。