简单工厂模式
简单工厂(Simple factory)理解:
According to definition from wikipedia, Factory Pattern is “A factory is an object for creating other objects”. Simple Factory Pattern is a Factory class in its simplest form (In comparison to Factory Method Pattern or Abstract Factory Pattern). In another way, we can say: In simple factory pattern, we have a factory class which has a method that returns different types of object based on given input.
有一个工厂类,根据不同的输入返回不同的对象。
1 | public class SimpleFactory { |
三个关键词:方法、入参、返回值
方法
负责创建对象的方法,可以叫做工厂方法
- 在加简单工厂模式中,为了简单,往往将这个方法定义成static,方便使用
- 一个工厂类中可以包含多个这样的方法,建议一个模块使用一个工厂类即可。
入参
根据这个入参决定创建哪种类型的对象
- 入参的一般是常量或者枚举,便于方法里面的seich语句或者其他分支的语句进行判断
- 也有人喜欢直接传递一个Class类(需要实例化的对象),但是不推荐,因为违反了工厂模式的宗旨。
返回值
工厂方法创建的是一类对象,所以返回值类型常常是一个接口,也可以是抽象的父类,而不会是一个具体的类。
痛点
不符合开闭原则,同样的,如果需要增加一个,需要修改工厂类的代码