Java 最佳实践:嵌套的 getter?或代表?

Opu*_*217 5 java android

毫无疑问,这是一个 n00b 问题,但我希望得到指导或链接。

我正在编写一个 Android 游戏应用程序,其中包括 Activity 和其他类之间的大量交互。这样做时,我不确定哪个是更好的做法,例如调用“updatePlayer”方法。

选项 A 是链式吸气剂,所以我可能在 myActivity 中有:

mGame.getPlayerList().getCurrentPlayer().updateScore(score);
Run Code Online (Sandbox Code Playgroud)

选项 B 是委托(希望我正确使用该术语):

mGame.updateCurrentPlayerScore(score);
Run Code Online (Sandbox Code Playgroud)

然后在游戏中:

playerList.updateCurrentPlayerScore(score);
Run Code Online (Sandbox Code Playgroud)

然后在 PlayerList 中:

currentPlayer.updateScore(score);
Run Code Online (Sandbox Code Playgroud)

我可以看到选择 B 的优势,因为我可以随意更改 playerList 和 Game 的结构和行为,但它确实增加了很多单行方法。

我的想法正确吗?有选择 C ​​或 D 吗?

JGe*_*kis 1

就我个人而言,我一直认为编码风格是一个观点问题。如果您只是为自己编码,那么您会做对您来说最有效且最简单的事情。例如,在 java 中,您使用驼峰式命名变量 ( intVar),但在 python 中,您使用下划线 ( int_var)。如果你在独立环境下,java中使用下划线,python中使用驼峰式大小写,那也没有关系。

然而...

在人们必须阅读和理解代码的地方,我会尝试尽可能遵循传统的编码风格,只是为了更加清晰。

对于您的场景,无论什么都能让您上船。传统上,getter 和 setter 是 java 可接受的编码风格。

扩展你的类也可能有助于不显示更高级别类的实现。