工厂方法模式,是一种创建型设计模式,顾名思义就是用来创建对象用的。
工厂方法定义了一个方法, 且必须使用该方法代替通过直接调用构造函数来创建对象 ( new
操作符) 的方式。 子类可重写该方法来更改将被创建的对象所属类。因为是替代构造函数来创建,所以工厂方法也称虚拟构造函数。
其实现步骤:
1、定义一类产品的通用接口,该接口必须声明对该类所有产品都有意义的方法。
2、创建各自产品的类,实现产品通用接口,并实现接口方法。
3、定义一个抽象的工厂类, 工厂类中定义一个抽象的创建产品的工厂方法,返回类型是产品通用接口类型,方法名是创建产品,这样就由工厂子类去实现要创建具体哪种产品。
在工厂类中,可以定义普通的public工厂方法,在工厂方法中,调用抽象的创建产品的方法,获取产品对象,然后调用产品对象的方法,实现具体业务。
4、创建工厂类的具体产品子类,子类中,重写工厂类中抽象的创建产品的方法,创建具体的产品。 子类中可以重写其他的非抽象的工厂方法,也可以不重写。不重写,子类可以直接调用父类的方法进行执行。