Хорошо, следуют тяжелые предположения: я думаю, вы слишком много думаете об эффективности. ОО кодирование не об эффективности. Это элегантный дизайн. Речь идет о минимизации побочных эффектов от внешних факторов и защите внутреннего состояния. Вот почему компиляторы «оптимизируют». Вы должны думать о ремонтопригодности и сложности кодирования в первую очередь. Количество строк, которые вы пишете, может быть больше, чем не-OO-код. Дело не в этом.
Старайтесь думать о своих "объектах" как о материальных объектах, которые взаимодействуют друг с другом. Это сообщение является протоколом (включает сигнатуры методов). На каком языке вы «говорите» друг с другом. Сделать это просто и однозначно. Никогда не предполагайте, что какой-либо объект обладает способностью манипулировать другим, помимо способности передавать предложение или запрос (инкапсуляцию).
Не просто добавлять геттеры и сеттеры ко всему без цели. Вы пропустите весь смысл и могли бы с тем же кодированием в другом стиле. Защищать внутреннее состояние. Метод получения и установки всего просто означает, что у вас будет универсально неэффективная реализация. Сеттеры и геттеры являются привратниками. Ничего более. Устраните их, если они не имеют смысла. Используйте их там, где они делают. Никогда не позволяйте что-то еще ввернуть ваше внутреннее состояние. Это создаст хаос.
При написании игр эти практики рушатся, но от них нельзя отказываться. Оптимизируйте свои критические петли и удушающие точки. Сохраните исходный код для справки и в качестве зеркально отраженной модели оптимизированного кода. Возьми ярлыки, которые тебе нужны, и больше ничего. Оптимизация всегда должна быть последней ... даже перед лицом явно неэффективного, но вдумчивого дизайна.
Многие бывшие Java-кодеры, с которыми я работал, без необходимости помещали сеттеры и геттеры в атрибуты (каждый атрибут). Это просто то, к чему они привыкли. Нет пользы в 9 из 10 случаев, но они настаивали на этом. Воздействие всегда было незначительным (50 тыс. Пользователей в минуту ... конечно, не используя Java ... но все же). Общее влияние геттеров и сеттеров в проекте высокого уровня минимально. Более низкий уровень, как в видеокодеках или OpenGL, это огромный .
Вы можете принять их, не задумываясь, или реализовать их с учетом применимости. Вы найдете многих профессоров, говорящих вам, что вы "не правы", потому что вы их опускали. Имейте в виду ваши ожидания курсовой работы. :)