工厂方法模式是定义一个创建对象的接口,由它的子类来创建对象,每一个子类提供一种创建实现
类图
工厂方法比起简单工厂来说:
- 定义了一个工厂接口SimpleFactory
- 具体的工厂类实现了SimpleFactory接口
- 每个工厂类分别负责创建一种对象
示例
定义要创建的目标:
public interface Thing {}
public class ConcreteThingA implements Thing {}
public class ConcreteThingB implements Thing {}
定义工厂接口和实现类:
public interface SimpleFactory {
Thing create();
}
public class ConcreteFactoryA implements SimpleFactory {
@overrite
public Thing create(){
return new ConcreteThingA();
}
}
public class ConcreteFactoryB implements SimpleFactory {
@overrite
public Thing create(){
return new ConcreteThingB();
}
}