探讨过程

观察到的现象

创建汽车对象的不是汽车这个类的构造函数, 而是汽车工厂的一个方法

假设特斯拉电动车工厂开工(静态类的方法)

先说有几种对象

特斯拉汽车工厂静态类的静态方法

特斯拉汽车(有自动导航功能, 抽象类, 父类)

子类1, 旗舰特斯拉

子类2, 大众版特斯拉

子类3, 大众音响版特斯拉

要完成的业务是, 所有特斯拉汽车自动导航进入仓库

特斯拉汽车工厂对象在内部生产三个品种的特斯拉, 但是我不需要这些细节的东西, 我只要知道工厂生产了一辆特斯拉汽车, 然后使其自动导航到指定地点就好了

即, 工厂生产子类, 但用父类接着

静态工厂的参数来自配置文件

最熟悉的例子就是数据源了

框架作者写一个静态工厂, 所有用户可以使用自己的数据源实例

地址可能不同, 端口可能不一样, 账户可能不一样, 甚至用的数据库都不一样

但是都有创建连接的功能

为什么需要, 什么样的场景

把业务与具体的参数解耦, 使得使用者只提供参数就可以直接展开业务, 不用写业务逻辑代码了

像是jQuery 中那些可配置的插件, 都算工厂