美文网首页
简单工厂之BitmapFactory

简单工厂之BitmapFactory

作者: wa11e | 来源:发表于2017-10-24 15:08 被阅读0次

    前言

    2017/10/24 14:44:57

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

    概念

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

    举个栗子

    以计算器的运算法则为栗

    先来看看UML图

    定义一个抽象父类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

          本文链接:https://www.haomeiwen.com/subject/yratpxtx.html