美文网首页
编程思想

编程思想

作者: 墨狂之逸才 | 来源:发表于2016-08-05 16:05 被阅读56次

1.面向过程:处理事情以过程为核心,一步一步的实现。

2.面向对象:万物皆对象

3.链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好。a(1).b(2).c(3)

  • 链式编程特点:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值)
  • 代表:masonry框架。

4.响应式编程思想:不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流。

  • 代表:KVO运用。

5.函数式编程思想:是把操作尽量写成一系列嵌套的函数或者方法调用。

  • 函数式编程本质:就是往方法中传入Block,方法中嵌套Block调用,把代码聚合起来管理
  • 函数式编程特点:每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)
  • 代表:ReactiveCocoa。
链式编程思想-模仿masonry写一个加法计算器
Calculator分类
#import <Foundation/Foundation.h>
#import "CalculatorManager.h"

@interface NSObject (Calculator)

+ (double)gw_makeCalculate:(void(^)(CalculatorManager *manager))block;

@end
#import "NSObject+Calculator.h"

@implementation NSObject (Calculator)

+ (double)gw_makeCalculate:(void (^)(CalculatorManager *))block {
    CalculatorManager *manager = [[CalculatorManager alloc] init];
    block(manager);
    return manager.result;
}

@end
CalculatorManager类
#import <Foundation/Foundation.h>

@interface CalculatorManager : NSObject

@property (nonatomic, assign) double result;

- (CalculatorManager *(^)(double))add;

@end
#import "CalculatorManager.h"

@implementation CalculatorManager
- (CalculatorManager *(^)(double))add {
    
    return ^(double value) {
        _result += value;
        return self;
    };
}

//    CalculatorManager *(^AddBlock)(double) = ^(double value) {
//        _result += value;
//        return self;
//    };

@end
方法的调用
#import "ViewController.h"
#import "Masonry.h"
#import "NSObject+Calculator.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    double result = 0;
    result = [NSObject gw_makeCalculate:^(CalculatorManager *manager) {
        manager.add(1).add(2);
    }];
    NSLog(@"%f",result);
}

@end
响应式编程思想-写一个加法计算器
CalcultorMake类
#import <Foundation/Foundation.h>

@interface CalcultorMake : NSObject

@property (nonatomic, assign) int result;

- (instancetype)gw_makeCalculte:(int(^)(int value))calculteBlock;

@end
#import "CalcultorMake.h"

@implementation CalcultorMake

//函数式编程思想:方法的返回值必须是对象本身,把函数或block当做方法的参数,block的参数是需要操作的值,block的返回值是操作的结果值
- (instancetype)gw_makeCalculte:(int (^)(int))calculteBlock {
    _result = calculteBlock(_result);
    return self;
}

@end
方法的调用
#import "ViewController.h"
#import "Masonry.h"
#import "NSObject+Calculator.h"
#import "CalcultorMake.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //函数式编程思想
    CalcultorMake * make = [[CalcultorMake alloc] init];
    [[make gw_makeCalculte:^int(int value) {
        value += 5;
        value -= 3;
        return value;
    }] result];
}

@end

相关文章

  • python面向对象1

    编程思想 编程思想:面向过程编程(穷人思想)、函数式编程、面向对象编程(富豪) 面向过程编程: 算法和逻辑 函数式...

  • 链式编程思想

    链式编程思想 链式编程思想

  • Day14 面向对象基础

    一.编程思想 编程思想: 面向过程编程(穷人思想), 函数式编程, 面向对象编程(富豪) 1.求1+...+100...

  • 寻找“高深术语”中活泼泼的地气

    面向对象的编程思想 编程,很简单,敲代码;思想,也简单,深思细想;编程思想,或者说思想编程,一说就知道难了,难在哪...

  • 前端思考

    编程语言 编程思想 编程能力 学习能力

  • 《Java编程思想》——《Java编程思想》——

  • 编程思想

    编程思想要解决的问题是什么? 编程思想的核心目的是,对现实世界建模。 当前流行哪些编程思想? 1. 面相对象编程 ...

  • 编程思想

    图解设计模式 Iterator 模式 设计模式 Iterator 模式如何提升你的阅读能力? 导读:今天这篇文章是...

  • 编程思想

    响应式 函数式 链式

  • 【编程思想】

    链式编程思想 链式编程思想: 是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好。a(...

网友评论

      本文标题:编程思想

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