工厂模式,主要负责对象的创建问题。而工厂模式又分为简单工厂,工厂方法和抽象工厂。

简单工厂

简单工厂简单来说就是将对象的创建做了一个简单的封装,根据参数直接返回具体的产品。

工厂方法

工厂方法并不会直接返回对象,而是返回一个工厂,然后用户需要使用工厂的方法直接创建产品。
通常情况下,每种新的产品都要创建一个产品工厂类,而且还需要创建一个工厂的工厂便于使用。

抽象工厂

工厂方法通常返回的是一种特定的工厂,如果现在比如手机,会有白色和黑色,而手机类型目前有小米,苹果,华为,那么就会有6个产品类,使用工厂方法就会有6个工厂类,如果使用抽象工厂,那么我们可以让一个工厂创建多种不同类型的对象。那么抽象接口应该有创建白色手机和黑色手机的两种接口。

简单工厂 VS 工厂方法 VS 抽象工厂

简单工厂直接根据参数信息返回对象,所以比较适合简单的对象的创建。
工厂方法每种新的产品类型都要创建一个新的工厂类,所以比较适合复杂的对象
抽象工厂比较适合一个工厂创建不同类型的产品