2012-05-02 111 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)。