美文网首页程序员
iOS开发基础:面向对象编程是面向妹子编程吗?

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

作者: 溪石iOS | 来源:发表于2016-05-08 18:30 被阅读327次
    iOS开发基础:面向对象编程是面向妹子编程吗?

    重读了一下《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开发基础:面向对象编程是面向妹子编程吗?

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