• iOS设计模式之简单工厂模式


    简单工厂模式

    基本理解

    • 到底要实例化谁,将来会不会增加实例化的对象,比如计算器增加开根运算,这是很容易变化的地方,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂。
    • 通过使用工厂模式,我们可以降低耦合度,做到对扩展开放,对修改封闭。如果需要再增加其他的方法,我们只需要重新构建一个子类即可。

    例子

    这里简单介绍一下。
    比如我们要做一个计算器,我们会写几个运算类,比如加法、乘法、除法和减法。但是我们在使用这些运算类的时候,我们没有必要去在客户端每次用switch判断或者if判断。我们只需要传入运算符即可:

    Operation oper;
    oper = OperationFactory.createOperate("+");
    oper.number1 = 1;
    oper.number2 = 2;
    double result = oper.getResult();
    

    因此我们用到的OperationFactory就是一个工厂,它用来加工生成不同的运算。简单看一下OperationFactory里面都写了什么。

    -(Operation *)createOperate:(NSString *)operate
    {
        Operation oper;
        switch (operate) {
            case [operate isEqualToString:@"+"]:
                oper = [[OperationAdd alloc] init];
                break;
            case [operate isEqualToString:@"-"]:
                oper = [[OperationSub alloc] init];
                break;
            case [operate isEqualToString:@"*"]:
                oper = [[OperationMul alloc] init];
                break;
            case [operate isEqualToString:@"/"]:
                oper = [[OperationDiv alloc] init];
                break;
            default:
                break;
        }
        return oper;
    }
    

    这只是大概的代码。其中Operation是OPerationAdd、OperationSub等得父类,然后通过参数operate来生成不同的子类,然后再计算,这就是工厂模式。

  • 相关阅读:
    电影观后感
    自定义内存管理
    web.xml配置详解
    Annotation
    Centos中yum方式安装java
    linux下添加用户并赋予root权限
    Injector
    Container
    GlassFish的安装与使用(Windows)
    Version Control
  • 原文地址:https://www.cnblogs.com/zhanggui/p/4714572.html
Copyright © 2020-2023  润新知