提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口,抽象类,也可以是具体的类。
面向接口编程
通常把简单工厂类实现成一个工具类,直接使用静态方法就可以了。也就是说简单工厂的方法通常都是静态的。所以也被称为静态工厂。
简单工厂的本质是选择实现。
那么什么时候选用简单工厂?
1. 如果想要完全封装隔离具体实现,让外部只能通过接口来操作封装体。那么可以选用简单工厂,让客户端通过工厂来获取相应的接口,而无需关心具体实现。
2. 如果想要把对外创建对象的职责集中管理和控制,可以选用简单工厂,一个简单工厂可以创建很多,不相关的对象,可以把对外创建对象的职责集中到一个简单工厂来,从而实现集中管理和控制。