工厂模式能够提供创建对象的功能,不需要暴露对象的创建过程。
简单工厂模式,能够降低客户端与模块之间的耦合度,Android中比较经典的就是BitmapFactory。其实现如下:
首先创建一个功能操作的接口:
public interface InterA {
void deal();
}
实现接口类:
public class Impl implements InterA {
@Override
public void deal() {
}
}
创建子类继承(根据需要)
public class ImplA extends Impl {
@Override
public void deal() {
super.deal();
}
}
public class ImplB extends Impl {
@Override
public void deal() {
super.deal();
}
}
创建工程类封装子类对象的创建过程:
public class Factory {
//安卓中的实现
public InterA create(int type) {
switch (type) {
case 1:
return new ImplA();
case 2:
return new ImplB();
default:
return new ImplA();
}
}
//javaee中的实现
public static <T extends InterA> T create(Class<T> clazz) {
InterA interA = null;
try {
interA = (InterA) Class.forName(clazz.getName()).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return (T) interA;
}
}
需要创建对象时只需Factory.create()即可。