繁体   English   中英

何时使用getX方法

[英]When to use getX method

来自C#的背景,我们使用属性来获取不需要花费很长时间的内容,并使用getX方法来获取需要花费的时间( msdn link )。 在Java中,由于没有属性,您是否在两种情况下都使用getX或是否有其他约定来指示从不太快速的访问中进行快速访问(除了对其进行记录)?

编辑:例如,您是否会为耗时的get操作(如数据库访问)使用其他命名约定,还是使用getX命名约定?

通常, getX()方法被认为是快速访问方法,而数据库支持的方法应该是findX()loadX()或类似的方法,但是据我所知,尚无全局协议。 有时甚至不遵守“获取者应该快”的规则。

getX约定来自JavaBean规范。 最近,由于许多框架都使用getter和setter(包括SpringHibernate)来操纵对象,因此POJO (普通的Java旧对象)的使用已变得非常流行。

进一步来说:

  • 非布尔值X getX (getter)
  • isX表示布尔X (获取器)
  • setXX任何值(设置器)

如果您不使用需要使用POJO的框架,那么一定要命名您的方法,以便您一眼就知道它们的作用。

这取决于情况以及所执行的操作-例如,您可以使用loadXfetchXcomputeX或有时仅将getX用作常规的“廉价”属性。

根据经验,创建一个私有成员字段以供本地访问您的财产,并创建一个getter / setter进行外部访问。

许多第三方方库(例如Spring)都依赖于公共方法进行依赖项注入(控制反转)和面向方面的编程,因此使用getter / setter可以促进这种编程风格。

例如,可以使用Spring将两个对象关联在一起。 或者,您可以使用AOP在一些比较昂贵的get操作周围放置一些缓存行为。

它还允许您在更改或检索属性时设置断点,添加日志记录等,这对于调试很有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM