我只是想看看我是否以最好的方式编码。
我有一个类Player,Pet和Health .. Player有一个feedPet方法,它调用Pets方法,然后调用Health类中的setFeed方法。
在setFeed方法中,我根据宠物喂食的方式调整健康状况。它还检查Pet是否已满,然后将调整后的饥饿等级传递给setHunger方法,该方法简单地将饥饿等级设置为等于hungerLevel参数。
现在宠物也有方法getHungry,如果宠物没有喂它就必须饿了。我在这里做的是访问宠物健康类并调用setNotFed方法,在这里它计算宠物的适当饥饿程度,然后将该级别传递给setHunger方法。
这是最正确的方法吗?我曾想过将setFeed和setNotFeed功能放入setHungry方法,但这会变得混乱和混乱。
非常感谢任何见解!
答案 0 :(得分:1)
Pet类中的setHunger方法是什么?也许它更适合健康课程。虽然真正的饥饿是“宠物”的明显属性,但如果你有宠物的“健康”课程,它可能会更好地组织在那里。这取决于“健康”是否应该特别代表“损害”之类的东西,可能更具体地说是外部造成的损害,或者由于缺乏更好的术语而被归类为“生命迹象”的任何东西。我想如果你这样做,大多数相关方法的组织将会落实到位。但是既然你来这里是为了回答 ......
当你学习(面向对象)编程时,你将学习如何根据目的组织类/方法,但在现实生活中它变得更加复杂......
我认为这就是一切。同样,我建议宠物行为和宠物所做的行为属于宠物,任何修改与宠物“健康”有关的行为都适合实际的健康类。
我推荐你看看MINECRAFT.JAR重新组装并探索课堂!它们编码良好且易于导航,我打赌你做的很多事情就是以自己的形式存在!我的答案基于我在阅读时记得看到的内容!