【发布时间】:2014-04-08 11:21:40
【问题描述】:
我将从Rust for Rubyist的这个怪物“怪物”代码开始:
trait Monster {
fn attack(&self);
fn new() -> Self;
}
struct IndustrialRaverMonkey {
life: int,
strength: int,
charisma: int,
weapon: int,
}
struct DwarvenAngel {
life: int,
strength: int,
charisma: int,
weapon: int,
} ...
impl Monster for IndustrialRaverMonkey { ...
impl Monster for DwarvenAngel { ...
我担心代码重复。在 Java 中,我将创建定义 attack 方法和带有所有参数的基类的接口(@987654324@、strength、charisma、weapon)。我将在 C++ 中使用抽象类做同样的事情。
我可以找到一些丑陋和不直观的方法来解决这个问题,但是有没有减少代码的好方法?我的意思是,保持它的可扩展性和可读性。
【问题讨论】:
标签: struct rust code-duplication traits