Effective Objective-C 2.0读书笔记 Ⅱ

接口与API设计

用前缀避免命名空间冲突

1.选择公司,应用程序或二者皆有关联之名称作为类名的前缀,并在所有代码中均作为前缀
2。若自己开发的程序库中用到了第三方库,则应为其中的名称加上前缀

提供"全能初始化方法"

 在类中提供一个全能初始化方法,其他初始化方法均应调用此方法。
 若全能初始化方法与父类不同,则需要覆盖父类对应的方法。如果父类的初始化方法不适合   	  
 子类,那么应该覆写这个父类方法,并在其中抛出异常。

- (instancetype)init{
    @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Must use initWithDimension: instead " userInfo:nil];
}

实现 description 方法

1.实现description方法返回一个有意义的字符串,用以描述该实例。
2.如果想在调试时打印出更详细的对象信息(用LLDB调试),可以实现debugDescription方法。

尽量使用不可变对象

1尽量创建不可变的对象
2若某属性可用于对象内部修改,则在分类中将其由readonly属性扩展为readwrite属性
3不要把可变的collection属性公开,而应提供相关方法,以此修改对象中的可变collection
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值