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