【发布时间】:2009-12-14 07:42:30
【问题描述】:
我有一些算法要做,它们在很多方面都非常相似,但都不同。
我将尝试举例说明我的意思。
假设我有一个 Robot 类。这个类应该是所有类的“基础”。它提供了使机器人在其环境中工作的基本机制。它可能需要也可能不需要自己工作(我的意思是它可以是一个抽象类,它本身是无用的,或者如果可能的话,具有准备工作的基本机制)。
所有机器人都有手。但有些机器人会有类似人类的手,有些会有刀片,有些会有剃须刀。我可以创建一个名为 RobotBase 的基类,然后创建 RobotHumandHand、RobotBladeHand 和 RobotRazorHand。但他们也可以有不同的头、不同的眼睛、不同的腿、不同的手臂等。有什么简单的方法可以解决这个问题吗?我想把它放在一种有点像乐高的方式,所以我可以定义一个机器人并“添加”我想要的部件。也许通过接口?我什至不知道这些是否存在于 python 中(这是我将使用的语言)。
非常感谢任何 cmets / 建议!谢谢!
【问题讨论】:
-
Robot 类不是此示例中的“基”类。如果是,那就意味着所有这些其他类型的对象都是机器人的一种,如果不是,它们就是机器人的一部分。
-
是的,你说得有道理。如果只有一件事可以改变,例如手臂,我可以从 Robot 继承并拥有 RobotBlade、RobotRazor 等。但在这种情况下你是对的。