iOS函数式编程的实现 & 响应式编程

简介

本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助。

配图

作为一个iOS 开发者,那么你一定用过Masnory/ SnapKit;

  • Masonry是一个OC开发中,非常好用的自动布局的第三方框架;
  • SnapKit是Masonry团队打造的swift版本的自动布局框架;
    如果你没有用过,在自动布局中用的是苹果原生的或者原生的升级版VFL语言,那我只好为你点“赞”!

一个典型的Masonry的语句:

就是这个“.”让Masonry更加鲜活的展示给了开发者,在我心中
Masnory/ SnapKit函数式编程的一个经典的代表作,非常值得参考和学习!

链式编程的好处不用再说了,用过Masnory/ SnapKit的都知道;

那么问题来了,怎么写链式编程呢?

一步步来实现一个函数式编程

  1. 新建项目command +shift + N 
  2. 创建一个Person类
    并为其增加两个方法
    简单实现: 
  3. 实例化并调用相关的方法
    以上三步实现了一个非常简单的程序;

      最终目标

      分解目标
      1.先实现这种方式调用

      2.再实现最终目标

      显然,如果想要实现[person run1]调用一个方法,那么run1就需要一个返回一个对象,让这个对象去调用study1。
      这样分析后,就简单了,就是增加一个返回值。

      代码
      方法的声明

      方法的实现

      实现最终目标: 

      在OC中,`()`block是以()的形式去执行的,猜想如果返回一个block的话,那么我就可以用()来实现runBlock()这种效果了吧!
      再结合我们的分解步骤,runBlock()代表执行了一个block,如果这个block的返回值的是一个对象的话,那么调用另外一个方法;这样就可以一直链接下去吧!实现了我们想要的目标!

      代码:
      声明

      实现:

      再来看一下Masonry的一个函数式编程

      最终调用的函数:
      返回的就是一个返回值为MASConstraint的block

      函数式编程总结

      • 如果想再去调用别的方法,那么就需要返回一个对象;
      • 如果想用()去执行,那么需要返回一个block;
      • 如果想让返回的block再调用对象的方法,那么这个block就需要返回一个对象(即返回值为一个对象的block)。

      响应式编程的概念

      在网上流传一个非常经典的解释`响应式编程的概念`
      在程序开发中:
      a = b + c
      赋值之后 b 或者 c 的值变化后,a 的值不会跟着变化
      响应式编程,目标就是,如果 b 或者 c 的数值发生变化,a 的数值会同时发生变化;

      在上篇博客中《iOS-Reactive Cocoa的常见用法》
      Reactive Cocoa就是一个响应式编程的经典作品!

    • 1
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值