Interface 如何处理从IDrawable更新动画?

Interface 如何处理从IDrawable更新动画?,interface,Interface,我有两个接口,IDrawable和IUpdateable。一些具体的绘图工具是可更新的,但不是全部。例如,带有动画的精灵同时实现IDrawable和IUpdateable,而静态图像只实现IDrawable 问题很明显。。。我怎么可能只使用iDravable引用更新动画?如果我将一个精灵传递给一个按钮作为其图形表示,该按钮将保持静态,因为它无法推进精灵动画 想法?解决方案是定义一个新的抽象: public interface IXXXObject { IDrawable Drawable

我有两个接口,IDrawable和IUpdateable。一些具体的绘图工具是可更新的,但不是全部。例如,带有动画的精灵同时实现IDrawable和IUpdateable,而静态图像只实现IDrawable

问题很明显。。。我怎么可能只使用iDravable引用更新动画?如果我将一个精灵传递给一个按钮作为其图形表示,该按钮将保持静态,因为它无法推进精灵动画


想法?

解决方案是定义一个新的抽象:

public interface IXXXObject {
   IDrawable Drawable { get; } // return null if not support IDrawable
   IUpdatable Updatable { get; } // return null if not support IUpdatable
}
所有对象都应该实现此接口。 现在,您应该将对象作为IXXXObject传递,如果功能支持,您可以调用它