工厂模式

工厂模式

设计模式相关第二篇工厂模式,和单例模式一样经常使用的工厂模式。本文记录一些相关的知识。

什么是工厂模式

为了将对象的创建逻辑和业务代码解耦,将创建对象的逻辑单独抽离出来,提供一个创建对象的工厂类,即为工厂模式。

工厂模式的三种形式

简单工厂模式

将创建对象的逻辑抽取出来,封装成一个工厂类,创建方法根据入参的类型创建不同的对象。将不同创建逻辑放到一个这个类中,if-else 逻辑在这个工厂类中。
简单工厂

工厂方法模式

与简单工厂模式类似,不同之处在于需要抽象一个工厂接口并提供多种工厂类的实现并为工厂类再创建一个简单工厂,用于获取工厂对象,再由工厂对象创建对应的目标对象,if-else 逻辑在工厂类的工厂中。所以说简单工厂模式是特殊的工厂方法模式。
工厂方法

抽象工厂模式

抽象工厂在工厂方法的基础上能支持更多不同类型的创建方法。
抽象工厂