接口与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