码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-11-06 17:39:32      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

23、编写代码要遵循Cocoa API约定
24、洞悉实例变量

  • 1、实例变量的命名规范是使用小写字符冲,不包含标点符号和特殊字符。
  • 2、只加入一些绝对必要的实例变量,否则容易造成大的开销。
  • 3、永远不要将变量设置为@public,因为这违反了封装的原则。
  • 4、确保类基本属性对应的实例变量有存储方法。

25、透彻了解属性的里里外外

  • 1、属性的动态性定义,需用关键字@dynamic。属性动态性是相对于@synthesis来说的,不是由编译器自动生成setter或getter,而是在运行时动态添加的setter和getter.
  • 2、属性采用动态性,与采用静态性相比,可以简化代码的编写,便于代码的管理。
  • 3、默认情况下,可写属性使用的实例变量被称为_propertyName。如果想要使用的实例变量不用名,需要在实现中指示编译器合成的变量。
  • 4、利用类扩展可实现对属性的“篡改”。

26、存取方法是良好的类接口必要组成部分
27、明晓类公共领域的方法都是虚方法

  • 1、在Objective-C中,所有的方法都是虚方法。
  • 2、实现纯虚方法依赖正式协议来实现
  • 3、协议并不是真正的类,他只能声明方法,不能添加数据
  • 4、非正式协议并不是真正的协议,它的代码没有约束力

28、初始化还是解码取决于是否支持归档和解档

  • 1、类的对象支持归档和解档,该类必须遵循NSCoding协议;必须实现对象进行编码(encodeWithCoder:)和解码(initWithCoder:)的方法
  • 2、类的初始化方法和initWithCoder:在角色上并行性存在例外

29、利用键-值机制访问类的私有成员变量和方法

  • 1、在Objective-C中,类的成员变量或方法是没有绝对私有的,可以借助“编译运行时”机制来实现对他们的访问
  • 2、KVC和KVO在定制子类的设计时特别重要
  • 3、KVC、KVO和KVB都支持遍历
  • 4、KVC主要通过isa指针来实现其内部查找定位。KVO其设计基于设计模式中的“观察者模式”。KVB和KVO最明显的使用场景就是在一些界面实时显示很强的地方。

30、浅复制适宜指针而深复制适宜数据
31、明智而审慎地使用NSCopying

  • 1、基类没有实现NSCopying,那么子类的实现必须复制它所继承的实例变量,以及那些在类中声明的实例变量,最安全的方式是使用alloc、init...和set方法
  • 2、类继承了NSCopying的行为,并声明了额外的实例变量,那么也需要实现copyWithZone;
  • 3、如果基类使用了或者有可能使用过NSCopyObject,那么必须使用有别于alloc和init...函数的情况,用不同的方式处理实例变量。

32、使用协议来实现匿名对象的提供

  • 1、采用协议,可灵活实现。实现抽象不应该依赖于细节,而细节应依赖于抽象,降低“声明”和“实现”的耦合度。
  • 2、设计程序采用协议,可减少继承类的复杂性。

 

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

标签:

原文地址:http://www.cnblogs.com/shentian/p/4942968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!