use*_*541 8 java inheritance object-oriented-analysis
我有一个JAVA类A,它有一个方法foo
abstract class A {
abstract void foo();
}
Run Code Online (Sandbox Code Playgroud)
我还有一个派生类A - MutableA.MutableA是一个单例对象,表示不需要更新,这对重用代码流很有用.永远不应该在MutableA上调用foo().实现这一目标的最佳方法是什么:
有人可以推荐我这种情况下的最佳做法是什么?
既然你说“不需要更新”,那么似乎空的实现才是正确的选择。如果我这样做怎么办:
A someA = createA();
someA.foo(); // make sure it's "foo"ed
Run Code Online (Sandbox Code Playgroud)
我不知道我是否回来了MutableA
,所以我打电话foo
来确定一下。
如果禁止调用,foo
我MutableA
会同意UnsupportedOperationException
或重新考虑设计。也许您可以包装A
一个AHandler
知道何时以及如何调用foo
它包装的实例的知识。