zoukankan      html  css  js  c++  java
  • ios设计模式—策略模式

         其实ios的设计模式有很多种,在实际应用中我们应该可以的去使用一些设计模式去规范和丰富我们的代码~~嘿嘿

         其实策略模式就是将我们代码中的复杂逻辑抽象成一个对象去处理,这会大大减少代码量,并且去使我们的逻辑看起来更有条理。

         拿if else为例可以将一个复杂的判断逻辑写到一个抽象的基类中,在其中进行判断再运用继承和多态的原理去分别执行不同的业务逻辑,这样会在控制器中减少代码量

    控制器代码:通过传入判断条件去控制执行逻辑

    //
    //  ViewController.m
    //  strategyDemo
    //
    //  Created by 樊星 on 16/2/8.
    //  Copyright © 2016年 樊星. All rights reserved.
    //
    
    #import "ViewController.h"
    #import "strategyClass.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        NSLog(@"
    第一次打印:%@
    第二次打印:%@",[strategyClass Type:TYPE_1],[strategyClass Type:TYPE_2]);
    }
    @end

    抽象类中代码:

    //
    //  strategyClass.m
    //  strategyDemo
    //
    //  Created by 樊星 on 16/2/8.
    //  Copyright © 2016年 樊星. All rights reserved.
    //
    
    #import "strategyClass.h"
    #import "strategyClassTYPE_1.h"
    #import "strategyClassTYPE_2.h"
    @implementation strategyClass
    + (id)Type:(FXType)type
    {
        if (type == TYPE_1) {
            return [strategyClassTYPE_1 showStr];
        }else if (type == TYPE_2){
            return [strategyClassTYPE_2 showStr];
        }else{
            return @"";
        }
    }
    @end

    好嘞大功告成

  • 相关阅读:
    浏览器漫谈
    无尽的烦恼
    微软的无聊
    作软件的人永远都是受气包吗?
    除非迫不得已不要用游标
    公司进行改革,路该如何走?
    Performance best practices for Web services
    HowTO: Create an Event Log Source in code, without the Permission errors
    Team Foundation Server安装指南
    百年不遇的,我遇到了两次
  • 原文地址:https://www.cnblogs.com/fanxinguu/p/5185303.html
Copyright © 2011-2022 走看看