始终使用Java Beans命名约定是一个好主意吗?

用户名

我一直觉得它非常有用,坚持在Java Beans命名约定:getX()setX()isX()等我认为Java Bean的命名约定提供了几个主要优点:

  1. 浏览代码时,您可以立即确定方法的用途。
  2. 浏览API文档时,由于Java文档的字母顺序,所有方法都组合在一起。
  3. 使用任何IDE的代码完成功能时,可以很容易且直观地进行排序并找到所需的方法。这又是由于IDE的字母顺序。

我知道Java API中有许多类不使用Java Beans命名约定。一个示例就是ArrayList,其中包含诸如之类的方法size()

我实际上有两个主要问题:

  1. 总是尝试使用Java Beans命名约定是一个好主意吗?如果没有,为什么?
  2. 我知道那ArrayList是在Java Beans出现之前写的。Oracle习惯于对所有(或至少大多数)新内容使用Java Beans命名约定吗?

下面的内容更多的是让人们思考而不是实际的问题。

如上所述,我一直坚持使用Java Bean命名约定。我认为它们以很多方式提供了很多优势。我认为最大的问题是,没有Java Bean,很多人会使用令人困惑的命名约定

个人认为应该始终遵循以下原则,并且很好奇人们对此有何看法:

  1. 如果方法名称是名词,则该方法应返回一个值。
  2. 如果方法名称是动词,则该方法应始终执行某些操作。如果该方法返回一个值,则返回的值应与所执行的操作有关。
  3. 如果方法名称是形容词,则该名称不应单独使用。例如,big()应为isBig()
  4. 不是对象隐含属性的名词不应单独使用。
    例如:
    size()House对象的适当方法,但door()不是。这样做的原因是自然决定的size的继承属性house物理上并不需要housea door
    相反door(),应将方法命名为getDoor()
  5. 如果方法名称遵循多个词性,则该方法将始终需要用户端进行不必要的思考。因此,该方法可能应该重命名。
    例如:
    假设我有一个名为的方法profile()根据类的不同,它profile()可能是动词或名词。我可能正在分析某些内容,或者正在获取个人资料。将方法名称更改为getProfile()doProfiling()将增加说明。
卡布尔斯

如果您遵守变量和getter / setter方法之间的命名约定,则还可以使您使用依赖于这些约定的工具,例如BeanUtils和Spring。在将名称更改为更具可读性的同时,您可能会失去使用有助于缓解“样板”代码的api的功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript-在闭包内使用函数构造函数不是一个好主意吗?

来自分类Dev

使用boost :: program_options解析文本文件是一个好主意吗?

来自分类Dev

什么是MongoDB的严格模式,使用它是一个好主意吗?

来自分类Dev

使用hgignore忽略* .orig文件不是一个好主意吗?

来自分类Dev

使用goto避免深度函数调用中的堆栈溢出是一个好主意吗?

来自分类Dev

在Web应用程序中使用反射是一个好主意吗?

来自分类Dev

使用CSS和JS的双语网站不是一个好主意吗?

来自分类Dev

使用宏在C中实现通用向量。这是一个好主意吗?

来自分类Dev

在静态文件上分块使用Transfer-Encoding:是一个好主意吗?

来自分类Dev

临时扩展Java中的现有对象-这是一个好主意吗?

来自分类Dev

Javascript WebSQL始终使用一个事务对象

来自分类Dev

应该始终使用memcpy吗?

来自分类Dev

在单元测试中使用依赖注入对象不是一个好主意吗?

来自分类Dev

应该始终使用std :: endl吗?

来自分类Dev

一个好主意是为此使用复合模式吗?

来自分类Dev

点击事件始终使用最后一个标记

来自分类Dev

使用共享库进行变体处理是一个好主意吗?

来自分类Dev

使用“ is”检查变量中包含哪个函数是一个好主意吗?

来自分类Dev

CalendarView StartDateTime始终使用UTC吗?

来自分类Dev

在单元测试中使用与被测系统中相同的常量是一个好主意吗?

来自分类Dev

广泛使用Factory构造函数是一个好主意吗?

来自分类Dev

使用NTFS压缩是一个好主意吗?

来自分类Dev

使用$ .get操作数据不是一个好主意吗?

来自分类Dev

使用只读根文件系统是嵌入式安装的一个好主意吗?

来自分类Dev

一起使用HtmlCleaner和Jsoup是一个好主意吗?

来自分类Dev

使用boost :: program_options解析文本文件是一个好主意吗?

来自分类Dev

对不同的控件使用与事件相同的功能不是一个好主意吗?

来自分类Dev

始终用final标记非虚拟方法是一个好主意吗?

来自分类Dev

一个好主意是为此使用复合模式吗?

Related 相关文章

  1. 1

    Javascript-在闭包内使用函数构造函数不是一个好主意吗?

  2. 2

    使用boost :: program_options解析文本文件是一个好主意吗?

  3. 3

    什么是MongoDB的严格模式,使用它是一个好主意吗?

  4. 4

    使用hgignore忽略* .orig文件不是一个好主意吗?

  5. 5

    使用goto避免深度函数调用中的堆栈溢出是一个好主意吗?

  6. 6

    在Web应用程序中使用反射是一个好主意吗?

  7. 7

    使用CSS和JS的双语网站不是一个好主意吗?

  8. 8

    使用宏在C中实现通用向量。这是一个好主意吗?

  9. 9

    在静态文件上分块使用Transfer-Encoding:是一个好主意吗?

  10. 10

    临时扩展Java中的现有对象-这是一个好主意吗?

  11. 11

    Javascript WebSQL始终使用一个事务对象

  12. 12

    应该始终使用memcpy吗?

  13. 13

    在单元测试中使用依赖注入对象不是一个好主意吗?

  14. 14

    应该始终使用std :: endl吗?

  15. 15

    一个好主意是为此使用复合模式吗?

  16. 16

    点击事件始终使用最后一个标记

  17. 17

    使用共享库进行变体处理是一个好主意吗?

  18. 18

    使用“ is”检查变量中包含哪个函数是一个好主意吗?

  19. 19

    CalendarView StartDateTime始终使用UTC吗?

  20. 20

    在单元测试中使用与被测系统中相同的常量是一个好主意吗?

  21. 21

    广泛使用Factory构造函数是一个好主意吗?

  22. 22

    使用NTFS压缩是一个好主意吗?

  23. 23

    使用$ .get操作数据不是一个好主意吗?

  24. 24

    使用只读根文件系统是嵌入式安装的一个好主意吗?

  25. 25

    一起使用HtmlCleaner和Jsoup是一个好主意吗?

  26. 26

    使用boost :: program_options解析文本文件是一个好主意吗?

  27. 27

    对不同的控件使用与事件相同的功能不是一个好主意吗?

  28. 28

    始终用final标记非虚拟方法是一个好主意吗?

  29. 29

    一个好主意是为此使用复合模式吗?

热门标签

归档