gpt4 book ai didi

java - 如何创建具有多个(可互换)行为的类

转载 作者:行者123 更新时间:2023-11-29 10:14:50 28 4
gpt4 key购买 nike

我是 Java 的新手,现在我一直在努力解决以下问题。

我的项目中有“人类”这个类,作为我模型的一部分,我希望我的人类能够特化,从而拥有新的行为。例如,我可以让一个人开始时是“平民”,但后来可以变成“士兵”并学习新的行为。

我曾经在 Smalltalk 中通过向我的“Human”类添加一个实例变量来做到这一点,它会指向一个“Civil”的实例,这样我以后就可以将它指向一个新的“Soldier”实例在游戏中,但现在在 Java 中我仅限于类型,我不确定如何解决它(我不认为为每种可能的类型添加一个实例变量是一种可能的解决方案,但我可能是错的)。

那么,您将如何建模?任何关于我如何解决这个问题的提示都将不胜感激!

最佳答案

您可以使用组合而不是继承。因此,人类内部会有一个变量来表示其行为。你可以称之为 HumanBehaviour。扩展 HumanBehaviour 并创建 SoldierBehaviour 和 CivilBehaviour。因此,您可以随时更改您的实例行为。只需执行 myHuman.setBehaviour(new SoldierBehaviour()) 或 myHuman.setBehaviour(new CivilBehaviour());

关于java - 如何创建具有多个(可互换)行为的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20763512/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com