java - 对于返回攻击方格的棋子列表的方法,最具有描述性的名称是什么

标签 java oop naming-conventions chess

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

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

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

我是为了自己的娱乐和学习用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/

相关文章:

perl - 为什么子类不继承其父类的常量?

c# - 如何通过反射设置类的私有(private)成员的公共(public)字段的值?

c# - 用于 C# 代码的 Pascal 大小写或 Camel 大小写?

java - 如何在 Android 的一个 FirestoreRecyclerAdapter 中包含两个模型类轨道和艺术家?

Java JSONParser 区分对象类型

Java8 方法引用用作函数对象以组合函数

oop - 为什么我们同步懒惰的单例而不同步急切的单例?

java - ExecutorService 命名约定 Java

git - 是否建议将Git存储库名称设置为upper或camel而不是小写?

java - Guice 不会拦截带注释的方法