Я много занимался программированием на Java, а затем бросил его и сделал кучу рубинов.Теперь я вернулся на Java и мне интересно, странен ли мой стиль программирования.
Мой код, приведенный ниже, кажется мне очень многословным, и вопрос в том, достаточно ли это идиоматическая Java?Любые предложения / улучшения, которые вы бы порекомендовали?
final static int FORCE_RIGHT = 0;
final static int FORCE_DOWN = 1;
final static int FORCE_LEFT = 2;
final static int FORCE_UP = 3;
final static int IMP_RIGHT = 4;
final static int IMP_DOWN = 5;
final static int IMP_LEFT = 6;
final static int IMP_UP = 7;
public void applyForce(int dir) {
counter++;
Vector2 vect = new Vector2();
switch (dir) {
case FORCE_RIGHT: vect = new Vector2(3.0f, 0.0f); break;
case IMP_RIGHT: vect = new Vector2(1.0f, 0.0f); break;
case FORCE_LEFT: vect = new Vector2(-3.0f, 0.0f); break;
case IMP_LEFT: vect = new Vector2(-1.0f, 0.0f); break;
case FORCE_UP: vect = new Vector2(0.0f, -3.0f); break;
case IMP_UP: vect = new Vector2(0.0f, -1.0f); break;
case FORCE_DOWN: vect = new Vector2(0.0f, 3.0f); break;
case IMP_DOWN: vect = new Vector2(0.0f, 1.0f); break;
}
Vector2 place = body.getWorldCenter();
if (dir == FORCE_RIGHT || dir == FORCE_LEFT || dir == FORCE_DOWN || dir == FORCE_UP)
{
body.applyForce(vect, place);
}
else
{
body.applyLinearImpulse(vect, place);
}
Log.v("CAR", "Applied force: " + dir + "("+counter+")");
}