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
发布了34 篇原创文章 · 获赞 4 · 访问量 682

猜你喜欢

转载自blog.csdn.net/weixin_44824650/article/details/104080063