编写高质量代码-OC 第6章 继承与面向对象设计

41、明确isa在继承上的作用

  • 1、在Objective-C中,每个对象都隐藏着一个数据结构isa指针
  • 2、isa指针指向的是对象的类,这个类也是一个对象,有自己的权。
  • 3、在Objective—C中,每个对象还都保留一个超类的指针,通过该指针可调度自己已有的方法和调度基类。

42、利用类别和协议实现类似多重继承的机制

  • 1、类别,实现了类的相关方法的模块化,把不同的类方法分配到不同的分列文件中。
  • 2、类别可以重载原始类的方法,但不推荐这么做,这么做得后果是再也不呢过访问原来的方法,如果确实要重载,正确的选择是创建子类。
  • 3、和普通接口有所区别的是,类别的实现文件中可以不必实现所有声明的方法,只要不去调用它。
  • 4、协议就是一系列不属于任何累的方法列表,其中声明的方法可以被任何类实现。协议(Protocol)并不是真正的类,它只能声明方法,不能添加数据。

43、类别和类扩展是类继承的延续性扩展。
44、继承基类的实现行为勿忘调用super。

  • 1、调用基类方式,以使用该类提供的服务。
  • 2、覆盖基类的方法,以便将自己的代码引入到定义的程序模型中。
  • 3、如果打算补充基类实现的行为,请调用super。
  • 4、如果打算替换基类实现的行为,就不要调用super。
时间: 2024-10-22 06:45:29

编写高质量代码-OC 第6章 继承与面向对象设计的相关文章

编写高质量代码-OC 第4章 设计与声明

23.编写代码要遵循Cocoa API约定24.洞悉实例变量 1.实例变量的命名规范是使用小写字符冲,不包含标点符号和特殊字符. 2.只加入一些绝对必要的实例变量,否则容易造成大的开销. 3.永远不要将变量设置为@public,因为这违反了封装的原则. 4.确保类基本属性对应的实例变量有存储方法. 25.透彻了解属性的里里外外 1.属性的动态性定义,需用关键字@dynamic.属性动态性是相对于@synthesis来说的,不是由编译器自动生成setter或getter,而是在运行时动态添加的se

编写高质量代码-OC 第1章 让自己习惯OC

1.视Objective-C为一门动态语言虽然OC和C++都是在C的基础上加入面向对象特性扩充而成的程序设计语言,OC基于动态运行时类型,而C++基于静态类型.OC编写的程序不能直接编译成可使机器语言(二进制编码),而是在程序运行时,通过运行时(Runtime)把程序转译成可令机器读懂的机器语言. Objective-C是动态语言,C++是静态语言 静态语言执行效率和安全性要比动态语言高,但其简便性没有动态语言高 运行时(Runtime)环境可处理弱类型.函数存在检查工作,会检测注册列表里是否存

编写高质量代码-OC 第8章 定制init...和delloc

50.了解对象的alloca和init... 1.alloc方法使用应用程序默认的虚存区.区是一个按页对齐的内存区域,用于存放应用程序分配的对象和数据 2.alloc分配过程不仅进行对象的内存分配,还初始化的对象的两个小而非常重要的属性,及它的isa实例变量和保持数 3.子类可以不采用带参数的初始化方法,而实现一个简单的init方法 ,并在初始化后马上使用“set”存取方法,将对象设置为有用的初始状态. 4.工厂方法则可以避免为可能没有用的对象盲目分配内存. 51.直接访问实例变量的init..

编写高质量代码-OC 第5章 实现

33.使用类别把类的实现拆分成不同的文件 1.利用类别机制,可将同一个类的实现,由一个常规的实现文件(.m)拆分成多个实现文件(.m) 2.把同一个类的实现文件(.m)拆分成多个实现文件(.m),适合类的实现文件大多比较庞大. 3.把同一个类的实现文件(.m)拆分成多个实现文件(.m),拆分的标准多是以同类型或同业务类型等来作为参照. 34.明智地使用内省可使程序更加高效和健壮 1.内省是对象揭示自己作为一个运行时对象的详细信息的一种能力,这些详细信息包括对象在继承树上的位置,对象是否遵循特定的

转载-------编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)

阅读目录 建议1:不要在常量和变量中出现易混淆的字母 建议2:莫让常量蜕变成变量 建议3:三元操作符的类型务必一致 建议4:避免带有变长参数的方法重载 建议5:别让null值和空值威胁到变长方法              The reasonable man adapts himself to the world; The unreasonable one persists in trying to adapt the world himself. 明白事理的人使自己适应世界:不明事理的人想让世

代码质量优先——《编写高质量代码:改善c程序代码的125个建议》

高质量的代码不但可以促进团队合作.减少bug处理.降低维护成本,对程序员自身的成长也是至关重要的.很难想象一个参考<如何编写无法维护的代码>写代码的程序员技术成长的上限有多么低.为了写出高质量的代码,我们需要听取过来人的改善代码质量的经验,<编写高质量代码:改善c程序代码的125个建议>就是一本能让人写出高质量代码的好书. 本书的第三章<程序控制语句应该保持简洁高效>首先用简练的语言介绍了流程控制结构的概念,然后提供了对if.else.for.do-while.swit

编写高质量代码:Web前端开发修炼之道(一)

最近老大给我们买来一些技术方面的书籍,其实很少搬着一本书好好的完整的看完过,每每看电子档的,也是打游击式的看看这章,瞅瞅那章,在那5本书中挑了一本比较单薄的<编写高质量代码web前端开发修炼之道>,看完觉得不错,它从一个整体架构上来说明如何编写高质量代码,而细处也着重说明一些比较重要的技术点,给人一种从高处俯瞰web开发.很完整的感觉,在这感谢老大,谢谢他让我们不停的进步着.下面是我看书过程中的笔记. 第一章:从网站重构说起 没什么好说的,从一个糟糕的老网页实例说明需要将web的结构,样式和行

编写高质量代码改善java程序的151个建议——导航开篇

2014-05-16 09:08 by Jeff Li 前言 系列文章:[传送门] 下个星期度过这几天的奋战,会抓紧java的进阶学习.听过一句话,大哥说过,你一个月前的代码去看下,惨不忍睹是吧.确实,人和代码一样都在成长,都在变好当中.有时候只是实现功能的编程,长进不了呀. 博客提供的好处就可以交流,讨论的学习方法你们应该知道. 在这里,我会陆陆续续的进行对<编写高质量代码改善java程序的151个建议>看法,希望大家点击交流. 正文 看这本书原因   1.项目做的只是实现功能,然而没有好好

编写高质量代码改善C#程序的157个建议[优先考虑泛型、避免在泛型中声明静态成员、为泛型参数设定约束]

前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能.基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托本身是一种引用类型,它保存的也是托管堆中对象的引用,只不过这个引用比较特殊,它是对方法的引用.事件本身也是委托,它是委托组,C#中提供了关键字event来对事件进行特别区分.一旦我们开始编写稍微复杂的C#代码,就肯定离不开泛型.委托和事件.本章将针对这三个方面进行说明. 这里也有一篇之前我对泛型的简