mar*_*ark 7 methods properties objective-c
我经常很难决定是否应该通过属性或方法公开某些数据.你可以说"使用对象状态的属性",但这不是很令人满意.以这个例子为例:
- (NSString *)stringOne
{
return _stringOne;
}
- (NSString *)stringTwo
{
return _stringTwo;
}
- (NSString *)mainString
{
return [_stringOne length] > 0 ? _stringOne : _stringTwo;
}
Run Code Online (Sandbox Code Playgroud)
很明显,stringOne并且stringTwo应该是性能,因为它们显然是对象的状态.然而,目前尚不清楚是否mainString属于财产.最终用户mainString就像状态一样.对你的对象,mainString 不是状态.
这个例子是人为的,但希望你能得到这个想法.是的,属性只不过是创建getter和setter的便捷方式,但它们也向用户传达了一些信息.有没有人有适当的指导方针来决定何时使用属性与方法.
我想说,隐藏"真实"状态(string1和string2你的例子)和"动态"状态(mainString)之间的分裂究竟是什么属性.
规范示例可能是代表一个人的对象,其中给定的姓氏和姓氏为"状态".可以从这两个部分呈现第三个状态"全名",但是客户绝对没有理由知道全名是按需构建,还是在设置两个部分时创建和存储.这没关系.
属性是一个接口 - 该类为其客户端提供了哪些数据(以及客户端可以配置哪些类)?每个属性的实现都是封装的,不会影响其作为属性的状态.
当然,在ObjC中,我们使用方法来访问属性.然而,其他方法表示对象可以采取的动作,可能传递一些数据来进行操作.
| 归档时间: |
|
| 查看次数: |
1965 次 |
| 最近记录: |