修改 再次感谢那些评论和回答的人。同意,不是世界上最好的问题,但我需要一点努力才能克服这个障碍。我特别注意的是返回类型是方法签名的重要部分。
清晰编码的一个重要方面是为您的类,变量和方法选择好的名称。
按照我在文献和网上阅读的内容,我会尝试选择名称,首先是尽可能描述性(因此也是明确的),其次,尽可能简洁。
我是为了自己的娱乐和学习用java编写国际象棋游戏,我偶然发现了一种方法,我根本无法弄清楚如何以令人满意的方式命名。该方法存在于我的ISquare
界面上,旨在为我提供当前攻击该广场的碎片列表。
为了完全描述,名称应该表明该方法返回一个片段集合,可以说是一个列表,并且这些片段正在攻击这个方形实例。人们可能会争辩说,后者是由方法所处的位置暗示的,但我对此并不十分肯定。
我能想到的最具描述性的名称可能违反了其他每一个命名约定,显然不会这样做:
List<IPiece> giveMeTheListOfPiecesThatThisSquareIsUnderAttackBy();
这两个替代方案表明该方法与当前实例有关,但似乎暗示结果具有布尔性质:
List<IPiece> isUnderAttackByPieces();
List<IPiece> underAttackByPieces();
下一个描述了返回类型,但没有明确说明攻击的内容:
List<IPiece> getAttackingPieces();
这个可能符合我的标准,但直觉上我会说使用“This”和“Square”这两个字看起来不太好:
List<IPiece> piecesAttackingThisSquare();
目前我已与underAttackByPieces()
达成和解,但如上所述并不完全确定。
非常感谢您提供的任何帮助!
答案 0 :(得分:4)
我会和getAttackingPieces
达成和解。由于它是ISquare
的一种方法,我认为很明显受到攻击的是什么。您可以在方法的Javadoc注释中更明确。