正确使用两种方法执行类似的任务

时间:2013-05-04 01:16:09

标签: java eclipse class methods

我只是想看看我是否以最好的方式编码。

我有一个类Player,Pet和Health .. Player有一个feedPet方法,它调用Pets方法,然后调用Health类中的setFeed方法。

在setFeed方法中,我根据宠物喂食的方式调整健康状况。它还检查Pet是否已满,然后将调整后的饥饿等级传递给setHunger方法,该方法简单地将饥饿等级设置为等于hungerLevel参数。

现在宠物也有方法getHungry,如果宠物没有喂它就必须饿了。我在这里做的是访问宠物健康类并调用setNotFed方法,在这里它计算宠物的适当饥饿程度,然后将该级别传递给setHunger方法。

这是最正确的方法吗?我曾想过将setFeed和setNotFeed功能放入setHungry方法,但这会变得混乱和混乱。

非常感谢任何见解!

1 个答案:

答案 0 :(得分:1)

Pet类中的setHunger方法是什么?也许它更适合健康课程。虽然真正的饥饿是“宠物”的明显属性,但如果你有宠物的“健康”课程,它可能会更好地组织在那里。这取决于“健康”是否应该特别代表“损害”之类的东西,可能更具体地说是外部造成的损害,或者由于缺乏更好的术语而被归类为“生命迹象”的任何东西。我想如果你这样做,大多数相关方法的组织将会落实到位。但是既然你来这里是为了回答 ......

当你学习(面向对象)编程时,你将学习如何根据目的组织类/方法,但在现实生活中它变得更加复杂......

  • 我说你的Player类很好。 feedPet方法非常完美。
  • 这可能看似矛盾,但事实并非如此:getHungry方法应该是Pet的一部分,因为它是行为,而饥饿(与其健康<有关) / em>)是一个健康领域。所以...
  • setNotFed和饥饿是饥饿领域的变异者,属于他们所处的位置(在健康中)

我认为这就是一切。同样,我建议宠物行为和宠物所做的行为属于宠物,任何修改与宠物“健康”有关的行为都适合实际的健康类。

我推荐你看看MINECRAFT.JAR重新组装并探索课堂!它们编码良好且易于导航,我打赌你做的很多事情就是以自己的形式存在!我的答案基于我在阅读时记得看到的内容!