闲谈编程思想(iOS)<一>
目前聊的编程思想有以下几个。欢迎吐槽补充。
1.面向对象
例子:以女朋友为对象。你的女朋友要吃大餐,所有的女朋友都想要礼物。
编程代码:
GirlFriend *yourGirlFriend = [[GirlFriend alloc]init];
[yourGirlFriend wantEatBigDinner];
[GirlFriend wantGift];
特点:万物皆对象。无论是吃还是要礼物,都是围绕对象发生的 ,对象可以是你的(someBody)女朋友,也可以是女朋友这个类。(题外话:所有女朋友都想要礼物(包括我),此处大写我的心愿:礼物+吃大餐....)
2.面向过程
还是以吃大餐为题:面向过程就是:两人进店--> 点大餐-->女朋友吃大餐-->男朋友结账->两人离开
特点:一步一步实现,依次实现、不能离开大餐馆之后再去吃大餐。这样就乱了。这里巴拉巴拉C语言基本编程都是面向过程的,大家可以看一下 。
3.链式编程思想
代表作:masonry
上面巴拉那么多无非是想让我男请吃大餐,买礼物,有编程基础的人都知道面向对象和面向过程。
至于链式编程思想,也是最近用masonry适配,觉得这个链式编程可读性相当高。特此学习。链式编程思想特点:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码。a(1).b(2).c(3)。
下面粘贴一段demo。 比如我想要表达我三月想要阿玛尼粉底液,四月份想要YSL的口红。五月份想要Coach的包包、怎么样像masonry一样,将不同的方法用一句代码表达出来。
1.首先,要有女朋友,和礼物这个类。其次要有一个女朋友+礼物 的扩展类。好处不多说,主要是为了解耦合。
下面粘贴代码:
首先,三个类定义出来。
Gift.h里面有giftName属性,储存你想要的所有礼物、两个方法,分别是某月。想要什么礼物、
Gift.m里面实现,这里很简单,拼接字符串、
GirlFirend+Gift.h
GirlFirend+Gift.m
GirlFirend.m和GirlFirend.h在这个需求里面不做操作,因为操作被类目做了 。
下面就是使用了 。
运行结果:
这样,你的礼物清单就出来了 。链式编程主要是运用block。方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值)。
下篇文章会讲响应式编程和函数式编程。