[英]When to use getX method
来自C#的背景,我们使用属性来获取不需要花费很长时间的内容,并使用getX
方法来获取需要花费的时间( msdn link )。 在Java中,由于没有属性,您是否在两种情况下都使用getX
或是否有其他约定来指示从不太快速的访问中进行快速访问(除了对其进行记录)?
编辑:例如,您是否会为耗时的get操作(如数据库访问)使用其他命名约定,还是使用getX
命名约定?
通常, getX()
方法被认为是快速访问方法,而数据库支持的方法应该是findX()
或loadX()
或类似的方法,但是据我所知,尚无全局协议。 有时甚至不遵守“获取者应该快”的规则。
getX
约定来自JavaBean规范。 最近,由于许多框架都使用getter和setter(包括Spring和Hibernate)来操纵对象,因此POJO (普通的Java旧对象)的使用已变得非常流行。
进一步来说:
X
getX
(getter) isX
表示布尔X
(获取器) setX
为X
任何值(设置器) 如果您不使用需要使用POJO的框架,那么一定要命名您的方法,以便您一眼就知道它们的作用。
这取决于情况以及所执行的操作-例如,您可以使用loadX
, fetchX
, computeX
或有时仅将getX
用作常规的“廉价”属性。
根据经验,创建一个私有成员字段以供本地访问您的财产,并创建一个getter / setter进行外部访问。
许多第三方方库(例如Spring)都依赖于公共方法进行依赖项注入(控制反转)和面向方面的编程,因此使用getter / setter可以促进这种编程风格。
例如,可以使用Spring将两个对象关联在一起。 或者,您可以使用AOP在一些比较昂贵的get操作周围放置一些缓存行为。
它还允许您在更改或检索属性时设置断点,添加日志记录等,这对于调试很有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.