ios安全吧 关注:2贴子:8
  • 1回复贴,共1

链式编程在iOS开发中的应用

只看楼主收藏回复

先来了解下开发过程中常常接触的几个编程思想:
1、面向过程:处理事情以过程为核心,一步一步的实现。
2、函数式编程思想:是把操作尽量写成一系列嵌套的函数或者方法调用。
函数式编程特点:每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果) 代表:ReactiveCocoa
3、面向对象:万物皆对象
面向对象对比面向过程的优胜之处在于,名词化的概念比动词化的描述,更便于人类理解。 这也是相比函数式编程的主要优点,许多函数是难以命名的,但对象却很容易。 回顾下封装、继承、多态。
封装是为了更好的重用性、可扩展性,但要综合考虑性能问题,即使新增了判断也会增加性能,只是不会量级的增加。 比如简单工厂和抽象工厂(反射机制)的封装,会增加性能的消耗。但把对象的管理变成了可配置化。
4、链式编程思想:将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好a(1).b(2).c(3)。
5、链式编程特点:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值) 代表:masonry框架
p.run() <=> [p run]();//执行方法的同时之后,立即执行方法返回的block
6、响应式编程思想:不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流。
代表: a. KVO 是 Objective-C 对观察者模式(Observer Pattern)的实现,也是 Cocoa Binding 的基础。当被观察对象的某个属性发生更改时,观察者对象会获得通知。 b. Reactive Cocoa框架
查看原文关注公众号【iOS逆向】


IP属地:福建1楼2021-07-23 18:39回复
    太实用了,准备一会试试。


    来自iPhone客户端2楼2021-07-23 22:42
    回复