这个问题只与类型化编程语言有关,动态解决方案并不令人满意。我们假设语言是C ++。
架构示例:
- DisplayObject (base class)
-- Container (derived from DisplayObject)
-- Sprite (derived from DisplayObject)
所以我手中有一个游戏引擎,它只有X和Y坐标。让我们说我想添加一个Z坐标。为此,我必须修改基类DisplayObject
。因为如果我只是从它派生来添加Z轴功能,那么就不可能在我的代码中使用类Container
和Sprite
而不将它们转换为我的新DisplayObject
。< / p>
问题是,如何在不使用铸造的情况下解决这个问题?
有许多派生自DisplayObject
的类,所以逐一修改它们看起来很奇怪
我也被建议代表团,但我不知道如何在这里应用它。