我知道命名约定很重要,原因有很多,最重要的是使代码更具可读性,更容易集成到更大的项目中,等等。在Java语言中,大多数约定要求方法名称以动词开头的lowerCamelCase
格式。
我的问题是:如何选择动词作为方法名称的开头?
为了使这个问题不那么模糊,我经常遇到这样的情况:我对方法名的第一选择是一个描述输出的名词。在这些情况下,为了符合动词规则,我通常需要在名词前面添加通用动词,如get
、generate
、calculate
等。什么时候使用哪一个有一般的指导原则吗?
下面是一个例子。我有一个方法,它接受double[] array
和一个int k
,并返回double[] newArray
,它是array
的长度k
移动平均值,即newArray[i] = (array[i-k+1]+...+array[i])/k
,通过一些伪造使newArray
与array
的长度相同。我倾向于将此方法称为movingAverage
,因为这是它返回的内容,但这是因为它不是以动词开头的。我应该称这个方法为getMovingAverage
、generateMovingAverage
还是calculateMovingAverage
,或者这无关紧要?
发布于 2011-08-23 04:29:44
我不认为java方法名应该“以动词开头”,我认为它们应该描述动作。这通常需要动词,因为动词描述动作。通常,它们是描述的重要部分(getVar和setVar的含义完全不同)。有时,它们不会向描述中添加任何东西(除了get/calculate/generate之外,您还能想到任何可以在movingAverage上操作的东西吗?)应该被丢弃。
发布于 2021-10-05 16:16:03
实际上,有一个这样的列表:
Verb Group
---- -----
Exit Common
Enter Common
Find Common
Pop Common
Remove Common
Rename Common
Push Common
Redo Common
Format Common
Move Common
New Common
Join Common
Lock Common
Optimize Common
Get Common
Hide Common
Open Common
Reset Common
Close Common
Clear Common
Skip Common
Split Common
Step Common
Unlock Common
Watch Common
Switch Common
Undo Common
Add Common
Copy Common
Resize Common
Search Common
Select Common
Show Common
Set Common
Write Communications
Send Communications
Read Communications
Receive Communications
Connect Communications
Disconnect Communications
Restore Data
ConvertTo Data
Backup Data
Edit Data
Dismount Data
Unpublish Data
Compress Data
Compare Data
Checkpoint Data
Sync Data
Save Data
ConvertFrom Data
Convert Data
Update Data
Import Data
Initialize Data
Export Data
Group Data
Limit Data
Out Data
Mount Data
Merge Data
Expand Data
Publish Data
Test Diagnostic
Ping Diagnostic
Debug Diagnostic
Measure Diagnostic
Repair Diagnostic
Resolve Diagnostic
Trace Diagnostic
Suspend Lifecycle
Wait Lifecycle
Uninstall Lifecycle
Submit Lifecycle
Unregister Lifecycle
Assert Lifecycle
Invoke Lifecycle
Approve Lifecycle
Stop Lifecycle
Deny Lifecycle
Request Lifecycle
Restart Lifecycle
Disable Lifecycle
Install Lifecycle
Enable Lifecycle
Register Lifecycle
Complete Lifecycle
Confirm Lifecycle
Start Lifecycle
Resume Lifecycle
Use Other
Grant Security
Unblock Security
Protect Security
Revoke Security
Unprotect Security
Block Security
https://stackoverflow.com/questions/7151418
复制相似问题