我在大学的某个阶段被告知(并且随后在十几岁的地方阅读)使用instanceof
应该只用作“最后的手段”。考虑到这一点,是否有人能够判断我拥有的以下代码是否是最后的手段。我环顾了一下堆栈溢出,但找不到类似的情况-也许我错过了?
private void allocateUITweenManager() {
for(GameObject go:mGameObjects){
if (go instanceof GameGroup) ((GameGroup) go).setUITweenManager(mUITweenManager);
}
}
在哪里
mGameObjects
是一个数组,其中只有一些是GameGroup
类型GameGroup
是抽象类的子类GameObject
。GameGroup
使用UITweenable
有方法的接口setUITweenManager()
GameObject
不使用接口UITweenable
我想我可以同样(并且可能应该)GameGroup
在上面的代码中替换为UITweenable
- 我会问同样的问题。
有没有另一种方法可以避免这种情况instanceof
?这段代码不能失败,因此(我认为,对吧?),但考虑到坏消息instanceof
似乎得到了,我是否在我instanceof
在这里使用的路线的某个地方犯了一些 OOP 的主要罪行?
提前致谢!