Let\'s say I have existing code which I want to extend but also to avoid changing it as much as possible.
Somewhere around this code there is a method that receives
Write this:
class Engine {
public static void method(Base argument) {
if (argument instanceof Derived) {
// ...
}
else {
// ...
}
}
}
But probably, you should extend your Engine
class to allow for more polymorphism, e.g. do something like this:
interface Engine {
void method(T argument);
}
And have implementations for Base
and Derived
like this:
class BaseEngine implements Engine {
@Override
public void method(Base argument) { ... }
}
class DerivedEngine implements Engine {
@Override
public void method(Derived argument) { ... }
}