简介
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。
举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。
又比如某个接口有很多实现类,如果使用new的方式创建对象,就需要用户了解具体应该使用哪个类,如果每个类实例化的参数还不一样,对用户来说就非常麻烦。此时工厂模式就派上了用处,用户只需告诉工厂自己需要哪种对象,由工厂来判断应当创建哪种对象并返回给用户。