0

编辑: 再次感谢那些评论和回答的人。同意,这不是世界上最好的问题,但我需要一点点推动才能克服我心中的这个障碍。我特别想到的是返回类型是方法签名的重要组成部分。

干净编码的重要方面之一是为您的类、变量和方法选择好的名称。

根据我在文学和网上阅读的内容,我会尝试选择首先尽可能具有描述性(因此明确)的名称,其次,尽可能简洁。

我是为了自己的娱乐和学习用java编写国际象棋游戏,我偶然发现了一种我根本无法弄清楚如何以令人满意的方式命名的方法。该方法存在于我的ISquare界面上,旨在让我返回当前正在攻击该方格的棋子列表。

为了完全描述,名称应该表明该方法返回一个片段的集合,甚至可以说是一个列表,并且这些片段正在攻击这个正方形实例。有人可能会争辩说,后者隐含在方法所在的位置,但我对此不太确定。

我能想到的最具描述性的名称可能违反了其他所有命名约定,并且显然不会这样做:

List<IPiece> giveMeTheListOfPiecesThatThisSquareIsUnderAttackBy();

这两个备选方案表明该方法与当前实例相关,但似乎暗示结果具有布尔性质:

List<IPiece> isUnderAttackByPieces();
List<IPiece> underAttackByPieces();

下一个描述了返回类型,但没有明确说明这些片段正在攻击什么:

List<IPiece> getAttackingPieces();

这个可能满足我的标准,但直觉上我会说使用“This”和“Square”这两个词看起来不太好:

List<IPiece> piecesAttackingThisSquare();

目前我已经解决了underAttackByPieces(),但如上所述,它并没有完全确定。

您可以提供的任何帮助将不胜感激!

4

1 回答 1

4

我愿意接受getAttackingPieces。既然它是一种方法ISquare,我认为受到攻击的东西已经很清楚了。您可以在方法的 Javadoc 注释中更加明确。

于 2013-02-18T16:07:24.607 回答