- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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/
有谁知道 double 是否隐式转换为 double? (Nullable 类型) 编辑:这里究竟发生了什么? double d = 5; double? d2 = d as double? 最佳答案
我是 Java 的新手,现在我一直在努力解决以下问题。 我的项目中有“人类”这个类,作为我模型的一部分,我希望我的人类能够特化,从而拥有新的行为。例如,我可以让一个人开始时是“平民”,但后来可以变成“
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 示例: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
ES2015中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换所有函数声明/表达式吗? 我要注意什么? 例子: 构造函数 function User(name) { this.name =
昨天,我们团队中的两个人带着一个不常见的问题来找我。我们在我们的一个 winforms 应用程序中使用第三方组件。所有的代码都是针对它编写的。然后他们想将同一供应商的另一个第三方组件合并到我们的应用程
ES2015 中的箭头函数提供了更简洁的语法。 我现在可以用箭头函数替换我所有的函数声明/表达式吗? 我需要注意什么? 例子: 构造函数 function User(name) { this.na
我的目标是编写一个 Model.find_by_name("foo-bar"),将在数据库中返回一条名为“foo bar”的记录。我正在努力寻找有关如何实现这一点的任何信息。我正在使用 postgre
我是一名优秀的程序员,十分优秀!