简单工厂之BitmapFactory

前言

2017/10/24 14:44:57

之前重温了一下设计模式,最近又在看Android源码,便想着根据自己的理解,将设计模式与源码结合起来,看看Android中都使用了哪些设计模式,做成一个系列.

概念

是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类

举个栗子

以计算器的运算法则为栗

先来看看UML图

简单工厂之BitmapFactory_第1张图片

定义一个抽象父类Operation.

public abstract class Operation {
public double number_A;
public double number_B;

//get set method
...

public abstract double getResult();

}

将所有的运算的都继承于Operation,实现getResult()方法

//加法类
public class OperationAdd extends Operation {

    public double getResult() {
    double result = 0;
    result = number_A + number_B;
    return result;
    }
}
//减法类,除法类,乘法类,类似

最后通过工厂去实例化

public class Factory {

public enum Type {
    Add, Div, Mul, Sub
}

public static Operation getOperation(Type type) {
    Operation operation = null;
    switch (type) {
    case Add:
        operation = new OperationAdd();
        break;
    case Div:
        operation = new OperationDiv();
        break;
    case Mul:
        operation = new OperationMul();
        break;
    case Sub:
        operation = new OperationSub();
        break;
    }
    return operation;
    }
}

使用

Operation operation;
operation = Factory.getOperation(Type.Add);
operation.number_A = 1;
operation.number_B = 2;
System.out.println("result:" + operation.getResult());

Android中的简单工厂模式

BitmapFactory:不同于上面的栗子,通过传入的参数来实例化不同的对象,BitmapFactory是通过不同的方法名和不同的参数来返回Bitmap

BitmapFactory.decodeByteArry(...);
BitmapFactory.decodeFile(...);
BitmapFactory.decodeResource(...);
BitmapFactory.decodeStream(...);

结语

有错请指出.

学无止境.

你可能感兴趣的:(简单工厂之BitmapFactory)