【发布时间】:2019-10-10 12:41:55
【问题描述】:
如果我调用方法makeDinner(),并且这个方法有子方法prepareTomatoes()和prepareMeat(),我应该这样做
a) 从makeDinner() 或
b) 调用prepareTomatoes() 并在该方法结束时调用prepareMeat()?
有什么通用的方法来解决这个问题吗?在将代码拆分为不同的方法并决定哪些仍属于该方法以及哪些不属于该方法时,我通常会遇到一些问题。
edit:这是一个不好的例子,正如我所看到的那样,它确实是非常情境化的。
我的具体情况是我必须做 3 个任务 - 根据健康绘制健康条,如果 health == 0.0f 调用 died(),最后绘制健康条。
我将它分为 3 个方法 - 我调用了 drawHealthBar() - 在这个方法内部我调用了 paintHealthBar() - 在这个方法内部,我调用了 died()(如果是 health == 0.0f 当然)。
现在,您可以预期,如果您调用drawHealthBar(),该方法还会检查健康状况并以特定颜色绘制健康状况条。但我担心如果我要从paintHealthBar() 调用died(),它会在6 个月后让其他人看代码甚至我感到困惑。
这可能比这复杂得多,但即使在那个“简单”的情况下,我也不知道我是否应该调用paintHealthBar(),然后是drawHealthBar(),然后是checkDeath(),所有这些都来自“main”方法,或者是否可以按照我的方式(降序)调用它,或者如果调用 draw() 并且在此方法内部 paint() 可以,但我应该从 main 方法调用 checkDeath()?
【问题讨论】:
-
你能提供一个完整的例子而不是描述它吗?虽然我认为我知道你的意思,但如果你清楚地提出替代方案,避免歧义会容易得多。
prepareTomatoes打电话给prepareMeat听起来很不对劲——这不是它所说的那样。如果我想要西红柿而不是肉怎么办? -
对不起,这是一个不好的例子。我编辑了我的答案,我希望现在很清楚。 @ParkerHalo
标签: java methods coding-style code-cleanup