普通工厂模式
设计模式是JAVA进阶中必备的技能,接下来就为大家介绍23中设计模式的基本用法。
首先为大家介绍工厂模式的使用。工厂模式适用于大量的对象需要创建,并且具有共同的接口时。在Android中,BitmapFactory是我们用到最多的工厂模式,它的各种方法都是返回Btimap类型。
工厂模式分为三种:
1、普通工厂模式
2、多个方法工厂模式
3、静态工厂模式
举例:
首先创建一个接口Interface
public interface IOperator {
public void operate();
}
其次创建一个类实现这个接口,如下:
public class OperateFirst implements IOperator {
public void operate() {
System.out.println("OperateFirst");
}
}
public class OperateSecond implements IOperator {
public void operate() {
System.out.println("OperateSecond");
}
}
接下来就是工厂模式的三种具体写法:
public class OperatorFactory {
/**
* 普通工厂模式
* @param type
* @return
*/
public IOperator produce(String type){
if("first".equals(type)){
return new OperateFirst();
}else if("second".equals(type)){
return new OperateSecond();
}else{
return null;
}
}
/*---------------------------------------*/
/**
* 多个工厂方法模式
*
*/
public IOperator produceSecond(){
return new OperateSecond();
}
public IOperator produceFirst(){
return new OperateFirst();
}
/*---------------------------------------*/
/**
* 静态工厂模式
*
*/
public static IOperator getSecond(){
return new OperateSecond();
}
public static IOperator getFirst(){
return new OperateFirst();
}
}
使用测试:
public class FactoryMethodTest {
public static void main(String[] args) {
//普通工厂模式
OperatorFactory factory = new OperatorFactory();
IOperator operator = factory.produce("first");
operator.operate();
//多个方法工厂模式
OperatorFactory factory2 = new OperatorFactory();
IOperator operator2 = factory2.produceFirst();
operator2.operate();
//静态工厂模式
IOperator operator3 = OperatorFactory.getFirst();
operator3.operate();
}
}
普通工厂模式是通过参数来创建对象,参数不对可能返回null,多个方法工厂模式需要先创建对象,因此,我们使用静态工厂模式比较多,避免了多次创建实例。
PS:所有模式Demo会在最后一起提供。