ios设计模式—策略模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(@"\n第一次打印:%@\n第二次打印:%@",[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

好嘞大功告成

以上是关于ios设计模式—策略模式的主要内容,如果未能解决你的问题,请参考以下文章

IOS之Objective-C学习 策略模式

csharp C#代码片段 - 使类成为Singleton模式。 (C#4.0+)https://heiswayi.github.io/2016/simple-singleton-pattern-us

策略模式

阿昌之丑陋代码优化通过策略模式&模版模式来优化Controller执行流程

Javascript设计模式总结之 -- 策略模式

Redis实现分布式锁(设计模式应用实战)