编辑: 再次感谢那些评论和回答的人。同意,这不是世界上最好的问题,但我需要一点插入力来克服我心中的这个障碍。我特别注意到的是,返回类型是方法签名的重要组成部分。
干净编码的重要方面之一是为类、变量和方法选择好的名称。
根据我在文献和网上阅读的内容,我会尝试选择首先尽可能具有描述性(因此不含糊)的名称,其次尽可能简洁。
我是为了自己的娱乐和学习用java编写国际象棋游戏,我偶然发现了一种方法,我根本不知道如何以令人满意的方式命名。该方法位于我的 ISquare
上界面,旨在让我返回当前正在攻击该方 block 的棋子列表。
为了充分描述,名称应该表明该方法返回棋子的集合,甚至可以说是一个列表,并且这些棋子正在攻击这个方形实例。有人可能会说后者是由方法所在的位置暗示的,但我对此不太确定。
我能想到的最具描述性的名称可能违反了所有其他命名约定,并且显然不会这样做:
List<IPiece> giveMeTheListOfPiecesThatThisSquareIsUnderAttackBy();
这两个替代方案表明该方法与当前实例相关,但似乎暗示结果具有 boolean 性质:
List<IPiece> isUnderAttackByPieces();
List<IPiece> underAttackByPieces();
下一篇描述了返回类型,但没有明确说明这些片段正在攻击什么:
List<IPiece> getAttackingPieces();
这个可能满足我的标准,但直觉上我会说使用“This”和“Square”这两个词看起来不太好:
List<IPiece> piecesAttackingThisSquare();
目前我已与 underAttackByPieces()
达成和解,但如上所述,这并不能完全解决问题。
我们将非常感谢您提供的任何帮助!
最佳答案
我会选择getAttackingPieces
。由于它是ISquare
的一种方法,我认为受到攻击的内容已经很清楚了。您可以在方法的 Javadoc 注释中更加明确。
关于java - 对于返回攻击方格的棋子列表的方法,最具有描述性的名称是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940379/