- (Nsstring *)stringOne{ return _stringOne;}- (Nsstring *)stringTwo{ return _stringTwo;}- (Nsstring *)mainString{ return [_stringOne length] > 0 ? _stringOne : _stringTwo;}
很明显stringOne和stringTwo应该是属性,因为它们显然是对象状态.但是,不清楚mainString是否应该是属性.对于最终用户,mainString就像状态一样.对于您的对象,mainString不是状态.
这个例子是人为的,但希望你能得到这个想法.是的,属性只不过是创建getter和setter的便捷方式,但它们也向用户传达了一些信息.有没有人有适当的指导方针来决定何时使用属性与方法.
解决方法 我想说,隐藏“true”状态(在你的例子中是string1和string2)和“动态”状态(mainString)之间的分割,究竟是什么属性.规范的例子可能是一个代表一个人的对象,给定的姓氏和姓氏为“状态”.可以从这两个部分呈现第三个状态“全名”,但是客户绝对没有理由知道全名是按需构建,还是在设置两个部分时创建和存储.这没关系.
属性是一个接口 – 此类为其客户端提供了哪些数据(以及客户端可以配置哪些类)?每个属性的实现都是封装的,不会影响其作为属性的状态.
当然,在ObjC中,我们使用方法来访问属性.然而,其他方法表示对象可以采取的动作,可能传递一些数据来进行 *** 作.
总结以上是内存溢出为你收集整理的objective-c – 使用属性与方法的指南全部内容,希望文章能够帮你解决objective-c – 使用属性与方法的指南所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)