什么是我的方法最具描述性的名称,它返回攻击正方形的棋子列表

时间:2013-02-18 16:03:50

标签: java oop naming-conventions chess

修改 再次感谢那些评论和回答的人。同意,不是世界上最好的问题,但我需要一点努力才能克服这个障碍。我特别注意的是返回类型是方法签名的重要部分。

清晰编码的一个重要方面是为您的类,变量和方法选择好的名称。

按照我在文献和网上阅读的内容,我会尝试选择名称,首先是尽可能描述性(因此也是明确的),其次,尽可能简洁。

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

为了完全描述,名称应该表明该方法返回一个片段集合,可以说是一个列表,并且这些片段正在攻击这个方形实例。人们可能会争辩说,后者是由方法所处的位置暗示的,但我对此并不十分肯定。

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

List<IPiece> giveMeTheListOfPiecesThatThisSquareIsUnderAttackBy();

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

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

下一个描述了返回类型,但没有明确说明攻击的内容:

List<IPiece> getAttackingPieces();

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

List<IPiece> piecesAttackingThisSquare();

目前我已与underAttackByPieces()达成和解,但如上所述并不完全确定。

非常感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:4)

我会和getAttackingPieces达成和解。由于它是ISquare的一种方法,我认为很明显受到攻击的是什么。您可以在方法的Javadoc注释中更明确。