从天地会一个贴子里看到的
解答了我关于SETTER/GETTER的疑惑
原文:http://www.asarea.cn/showdiary.jsp?id=155
这是我总结的一些
setter和getter的妙用
以前在写c++代码时经常在想java怎么那么傻,搞个什么setter和getter出来,既然留了门,那不就等于public么,不过最近在as里用起来,感觉有些地方还是很不错的。
A、setter或者getter一个不是普通的成员变量,假定某类中有一个sprite,我们总是要在类内部获取该sprite的高、宽,每次都***.width, ***.height岂不是很累,我们可以
private function get ...():Number{return ***.width};
以后直接...即可,代码看起来也要舒服很多。
B、setter不一定要和某成员变量联系起来,譬如
public function set data(...)...
,我们可以在set中做很多工作,譬如把data转换为我们需要的数据,根据数据刷新显示等等,不一定是要有一个data属性与之相对应!
当然还有很多,连flex的数据绑定就是setter的强大功力体现,自己慢慢体会吧
======================================
getXX()来代替 get XX(),效率也高点~
只不过带空格的,使用的时候是 xx=myClass.XX
不带空格的,使用的时候是 xx=myClass.getXX()
==================================================================
其实用private+ getter setter是为了增强封装性!
你想,如果把变量暴露给外部使用,假如后期,需求
上要对这个变量先进行些处理,那你就得改N个你
调用它的地方,而如果是用了getter和setter,那你
只要改这两个方法就可以 ...
=================================================================
要用get、set
1需要创建只读或只写属性的时候用,访问控制
2除了提供属性访问,还要做额外事情,例如计访问属性的次数、trace等等,灵活扩展
一种情况要注意
本着类不能太裸露的原则,不要滥用get、set
没有评论:
发表评论