工厂模式
不会对使用者暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
以简单工厂为例
// 提供统一的抽象接口供子类实现
public interface Factory {
void create();
}
// 子类实现抽象接口
public class Computer implements Factory{
@Override
public void create() {
System.out.println("I am Computer Product ! Create an Computer");
}
}
public class Car implements Factory{
@Override
public void create() {
System.out.println("I am Car Product ! Create a car");
}
}
//真正的工厂方法,根据需求提供实例
public class RealFactory {
public Factory getFactory (String want) {
if (want == null || "".equals(want)) {
return null;
}
if (want.equals("car")) {
return new Car();
} else if (want.equals("computer")) {
return new Computer();
} else {
return null;
}
}
}
//使用实例
public class FactoryDemo {
public static void main(String[] args) {
/**
* 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
*/
RealFactory factory = new RealFactory();
Factory carFactory = factory.getFactory("car");
carFactory.create();
Factory computerFactory = factory.getFactory("computer");
computerFactory.create();
}
}
Android 中的工厂模式
优秀实现
用于使用多种第三方的中间层,根据配置调用真正的实现