iOS开发基础:面向对象编程是面向妹子编程吗?

iOS开发基础:面向对象编程是面向妹子编程吗?_第1张图片
图片发自App

重读了一下《Objective-C基础教程》,发现书中关于面向对象编程本质,有一章独特的解释。


什么是面向对象

OOP是一种编程架构,可构建由多个对象组成的软件。

想象对象就像软件中的一个个小机器人,它们各自完成特定的工作,并互相传递信息,完成多种合作的工作。

面向对象的目的

减少修改正常工作的代码

面向对象编程的核心是间接

间接并不神秘

变量就是一种间接

'''

for (int i = 1; i <= 10; i++) NSLog(@"%d", i);

'''

通过把10替换成count,输出范围的改变就再也不会导致循环方法的修改:

'''

int count = 10

for (int i = 1; i <= count; i++)  NSLog(@"%d", i);

'''


文件名也是一种间接

通过文件名读取一个电话号码文件,文件内容的增减,比如从一个市号码扩展到全国号码不会导致处理方法的修改。

objective-c 类中的 self

对自身的一种间接访问,获得类内部的其它变量,而不用关心这些变量的实际存储。


因此对象是一种指针,是对数据及其操作的一种“间接”。


假设一个Shape类,[shape draw] 真正调用的方法,是由子类实现的draw方法决定的,如Circle 类,继承自 Shape,它的draw 能真正绘制一个圆形。

下面是一个方法执行的过程

1)  查询消息的目标对象属于哪个类。

2)对应的类查找代码块,获取方法的地址。

3)Objective-C运行该方法的代码。

“间接”实现了隐藏

设计一系列基本对象,对外公开抽象对象及其基本操作,并隐藏具体的实现细节。

那么问题来了,隐藏带来了什么好处?隐藏迫使调用者发布指令,而不是传递数据,完成功能的过程交给了对象本身。所以值得注意的是:对于一个绘图程序,一个只传递了三角形三点数据而不能绘制本身的“三角形对象”,是设计不良的对象。

你可能感兴趣的:(iOS开发基础:面向对象编程是面向妹子编程吗?)