在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置;
比如在我的一个报表系统中,有一种报表生成事件,该事件实现run接口,实现具体的报表生成操作,但是它不能被new出来,因为它需要依赖spring的依赖注入的各种service对象. 所以这时就需要工厂模式
类图:
抽象的基础报表导出事件