我经常很难决定是否应该通过属性或方法公开某些数据.你可以说“使用对象状态的属性”,但这不是很令人满意.以此示例为例:
- (NSString *)stringOne { return _stringOne; } - (NSString *)stringTwo { return _stringTwo; } - (NSString *)mainString { return [_stringOne length] > 0 ? _stringOne : _stringTwo; }
很明显stringOne和stringTwo应该是属性,因为它们显然是对象状态.但是,不清楚mainString是否应该是属性.对于最终用户,mainString就像状态一样.对于您的对象,mainString不是状态.
这个例子是人为的,但希望你能得到这个想法.是的,属性只不过是创建getter和setter的便捷方式,但它们也向用户传达了一些信息.有没有人有适当的指导方针来决定何时使用属性与方法.