我有一個程序有4個變量:XPOS,yPos,xVel,yVel命名約定變量
他們每個人都應該有一個setter /吸氣劑,但它會很尷尬的說:
setXpos()
getXpos()
getXvel()
setXvel()
這些變量的命名約定是否短而有效?
我有一個程序有4個變量:XPOS,yPos,xVel,yVel命名約定變量
他們每個人都應該有一個setter /吸氣劑,但它會很尷尬的說:
setXpos()
getXpos()
getXvel()
setXvel()
這些變量的命名約定是否短而有效?
您在代碼段中列出的內容是的命名約定。
更重要的問題是,他們如何重新構建可讀性?作爲沒有看到您的節目的人,您列出的四項功能似乎對我來說非常清楚。我很難弄清楚一些事情。
無論什麼時候你放棄一個約定,即使這個約定讓事情變得噁心,你也會失去可讀性/清晰性(正如人們期望的那樣,這些約定被實現)。你必須權衡放棄惡習的好處 - 更好地避免放棄慣例。
這一切都說,你有我的許可使用'getXvel()'。一帆風順。 =)
關於命名約定有幾個流派。如果你遵循java bean約定,那麼你的setters和getters是正確的,但是我會考慮將你的變量重命名爲更具描述性的,即horizontalPosition
,verticalPosition
,verticalVelocity
,horizontalVelocity
,其中適當命名的獲取器和設置器。
長名稱是可取的,除非有一個成立的慣例IMO(int i exific)。在這種情況下,xPos足夠清晰。 xVelocity vs xVel會有意義。當然非常主觀。 – assylias
getXPos()
和getXVel()
怎麼樣?雖然,getXPosition()
和getXVelocity()
似乎更清楚。這取決於上下文,但花了我一秒鐘才發現你並不是指val
。
這超出了你的問題,但(在正常情況下),我可能會說這樣做:
foo.getX().position();
foo.getX().velocity();
你如何做到這一點? – Anonymous181
您創建了一個具有'position()'和'velocity()'方法的類,並在調用'getX()'時返回該類的一個實例。 – Jeremy
使用類點(X,Y)。
就是這樣,但我可能會建議編寫一個向量類並傳遞它們,而不是處理xp,yp,xv,yv等等。 –