2012-05-02 170 views
1

我有一個程序有4個變量:XPOS,yPos,xVel,yVel命名約定變量

他們每個人都應該有一個setter /吸氣劑,但它會很尷尬的說:

setXpos() 
getXpos() 
getXvel() 
setXvel() 

這些變量的命名約定是否短而有效?

+4

就是這樣,但我可能會建議編寫一個向量類並傳遞它們,而不是處理xp,yp,xv,yv等等。 –

回答

2

您在代碼段中列出的內容是的命名約定。

更重要的問題是,他們如何重新構建可讀性?作爲沒有看到您的節目的人,您列出的四項功能似乎對我來說非常清楚。我很難弄清楚一些事情。

無論什麼時候你放棄一個約定,即使這個約定讓事情變得噁心,你也會失去可讀性/清晰性(正如人們期望的那樣,這些約定被實現)。你必須權衡放棄惡習的好處 - 更好地避免放棄慣例。

這一切都說,你有我的許可使用'getXvel()'。一帆風順。 =)

1

關於命名約定有幾個流派。如果你遵循java bean約定,那麼你的setters和getters是正確的,但是我會考慮將你的變量重命名爲更具描述性的,即horizontalPosition,verticalPosition,verticalVelocity,horizontalVelocity,其中適當命名的獲取器和設置器。

+1

長名稱是可取的,除非有一個成立的慣例IMO(int i exific)。在這種情況下,xPos足夠清晰。 xVelocity vs xVel會有意義。當然非常主觀。 – assylias

2

getXPos()getXVel()怎麼樣?雖然,getXPosition()getXVelocity()似乎更清楚。這取決於上下文,但花了我一秒鐘才發現你並不是指val


這超出了你的問題,但(在正常情況下),我可能會說這樣做:

foo.getX().position(); 
foo.getX().velocity(); 
+0

你如何做到這一點? – Anonymous181

+0

您創建了一個具有'position()'和'velocity()'方法的類,並在調用'getX()'時返回該類的一個實例。 – Jeremy

1

使用類點(X,Y)。