2012-05-02 3 views
1

У меня есть четыре переменные в программе: XPOS, YPos, XVEL, Yvelобозначения для переменных

Каждый из них должен иметь сеттер/геттер, но это будет неудобно сказать:

setXpos() 
getXpos() 
getXvel() 
setXvel() 

Существует ли соглашение об именах для этих коротких и эффективных переменных?

+4

Вот и все, но я мог бы порекомендовать написать векторный класс и передать их вокруг, вместо того чтобы иметь дело с xp, yp, xv, yv и т. Д. –

ответ

2

Что вы указали в своем фрагменте кода is Соглашение об именовании.

Важнейший вопрос заключается в том, как они могут быть пересмотрены для удобства чтения? Как тот, кто не видел вашу программу, четыре функции, которые вы указали, мне совершенно понятны. Мне сложно придумать что-то более ясное.

Каждый раз, когда вы отказываетесь от соглашения, даже если соглашение делает что-то неприятным, вы теряете удобочитаемость/ясность (поскольку люди ожидают, что эти соглашения будут выполнены). Вы должны взвесить преимущество отказа от нехорошего соглашения-результата для чего-то лучшего против этой потери отказа от конвенции.

Все это означает, что у вас есть разрешение на использование 'getXvel()'. Godspeed. =)

1

Существует несколько школ мысли об именовании. Если вы следуете за соглашениями java bean, то ваши сеттеры и геттеры правильны, однако я бы подумал о том, чтобы переименовать ваши переменные более наглядно, т. Е. horizontalPosition, verticalPosition, verticalVelocity, с соответствующими именами и сеттерами.

+1

Длинные имена предпочтительнее, если не существует установленной практики IMO (int i for exsmple). В этом случае xPos достаточно ясен. xVelocity vs xVel имеет смысл. Очень субъективно, конечно. – assylias

2

Как насчет getXPos() и getXVel()? Хотя, getXPosition() и getXVelocity() кажется яснее. Это зависит от контекста, но мне потребовалось секунду, чтобы понять, что вы не имели в виду val.


Это выходит за рамки вашего вопроса, но (при правильных обстоятельствах) я мог бы сделать это аргументируют:

foo.getX().position(); 
foo.getX().velocity(); 
+0

как вы это делаете? – Anonymous181

+0

Вы создаете класс с методами 'position()' и 'velocity()' и возвращаете экземпляр этого класса при вызове 'getX()'. – Jeremy

1

Используйте класс точка для (х, у).

Смежные вопросы