目录
介绍
工厂方法模式是创建型设计模式之一,它是一种结构简单的模式,其在我们平时的开发中应用非广泛,比如Activity中各个生命周期的方法,以onCreate为例,它就可以看作是一个工厂方法,我们在其中可以构造我们的View并通过setContentView返回给framework处理。
定义
定义一个用于创建对象的接口,让子类决定实例化哪个类。
使用场景
在任何需要生成复杂对象的地方,都可以使用工厂方法模式,复杂对象适合使用工厂方法模式,用new就可以完成对象创建的话无需使用工厂模式。
代码实现
比如我们定义一个Car的接口,表示汽车的对象,当然没有定义任何方法,只是举例说明一下而已。
public interface Car {
}
它有各种子类,比如Audi、Baoma等等,生产工厂为CarFactory,源码如下:
public class CarFactory {
public static Car createCar(Class cls) {
try {
return (Car) Class.forName(cls.getName()).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
createCar方法根据入参的类型生产出对应的对象,工厂方法作为创建型设计模式就是创建对象用的,所以也很简单,当然如果我们不想用它,直接new也没有什么问题,都可以达到同样的目的。