美文网首页
编程思想

编程思想

作者: yangfei02821 | 来源:发表于2017-02-28 15:01 被阅读0次

    在开发中我们也不能太依赖于某个框架,否则这个框架不更新了,导致项目后期没办法维护,比如之前Facebook提供的Three20框架,在当时也是神器,但是后来不更新了,也就没什么人用了。因此我感觉学习一个框架,还是有必要了解它的编程思想。

    编程思想的由来:在开发中我们会遇见各种各样的需求,经常会思考如何快速的完成这些需求,这样就会慢慢形成快速完成这些需求的思想。

    先简单介绍下目前咱们已知的编程思想。

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

    3.2面向对象:万物皆对象

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

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

    代表:masonry框架。

    练习一:模仿masonry,写一个加法计算器,练习链式编程思想。

    添加分类 外部调用 内部实现 定义 实现

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

    代表:KVO运用。

    KVO的本质就是监听一个对象有没有调用set方法。

    做法:重写这个方法(分类或子类中重写)

    1)分类方法不足:会将类中的方法覆盖,没办法在类中重新赋值,做一些处理。

    2)子类重写,重写setName,在内部恢复父类做法,通知观察者;

    监听方法本质:并不需要修改方法的实现,仅仅想判断下有没有调用

    练习二:KVO底层实现。

    KVO底层实现 KVO底层实现图解

    isa指针的变化:

    没添加监听者前 添加监听者之后

    相关代码:

    NSObject+KVO.h ViewController.m ViewController.m NSObject+KVO.m YFKVONotifying_Person.h YFKVONotifying_Person.m

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

    函数式编程本质:就是往方法中传入Block,方法中嵌套Block调用,把代码聚合起来管理

    函数式编程特点:每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)

    代表:ReactiveCocoa。

    练习三:用函数式编程实现,写一个加法计算器,并且加法计算器自带判断是否等于某个值.

    CalculateManager.h ViewController.m CalculateManager.m

    相关文章

      网友评论

          本文标题:编程思想

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