Вы можете добиться большего с помощью перечислений и абстрактных методов (и хорошего дизайна в целом). Трудно дать конкретное руководство со спецификой того, что вы пытаетесь сделать. Вот пример типа кода, который вы можете написать:
public class Physics {
public void apply(final Body body, final Vect place, final Direction dir) {
float magnitude = findMagnitude();
PhenomType phenomType = findPhenom();
phenomType.apply(body, dir.createVect(magnitude), place);
System.out.println("CAR Applied force: " + dir);
}
public enum Direction {
UP {
@Override
public Vect createVect(final float magnitude) {
return new Vect(0.0f, magnitude);
}
},
DOWN {
@Override
public Vect createVect(final float magnitude) {
return new Vect(0.0f, -magnitude);
}
},
LEFT {
@Override
public Vect createVect(final float magnitude) {
return new Vect(-magnitude, 0.0f);
}
},
RIGHT {
@Override
public Vect createVect(final float magnitude) {
return new Vect(magnitude, 0.0f);
}
};
public abstract Vect createVect(float magnitude);
}
public enum PhenomType {
FORCE {
@Override
public void apply(final Body body, final Vect vect, final Vect place) {
body.applyForce(vect, place);
}
},
IMPULSE {
@Override
public void apply(final Body body, final Vect vect, final Vect place) {
body.applyImpulse(vect, place);
}
};
public abstract void apply(Body body, Vect vect, Vect place);
}
}