Ответ на этот вопрос вращается вокруг хорошего стиля программирования, и в зависимости от того, сколько людей прочитают этот вопрос, вы получите довольно много очень злобных ответов, которые непреклонны, что даже задавать этот вопрос - грех. Короткий ответ - это инкапсуляция кода .
Вы пишете очень маленькие программы для своих классов и пишете их по набору критериев, которые хорошо известны и точно определены в начале задания и никогда не меняются. К сожалению, немногие программы, написанные в реальном мире, обладают одним из этих свойств. Это большие программы с дизайном, который по-настоящему не закончен, пока программа не завершена (подсказка, этого никогда не происходит), и они решают проблемы, которые плохо понимаются и постоянно меняются.
В свете этих трудностей и многих других, о которых я не упомянул (самый большой результат которых заключается в том, что вы будете менять многие части своего кода много раз после их написания), программисты придумали ряд практических приемов. которые делают программирование более терпимым. Одна из самых важных вещей, которые вы можете сделать, - это изолировать изменения в ваших программах. Это означает, что когда вы изменяете что-то в одной части вашей системы, это должно включать как можно меньше изменений в других частях вашей системы.
Инкапсуляция - это один из способов помочь вам добиться этой изоляции изменений. Если вы решите что-то изменить в классе MyData, вам придется изменить каждый класс, использующий MyData. Например, скажем, вы решили, что MyData должен содержать гораздо больше, чем 5 полей, которые вы определили, или что поля, которые хранит MyData, должны динамически изменяться во время выполнения. Я бы сделал это, предоставив MyData частный HashMap, содержащий все ваши строки, к которым затем можно получить доступ по ключу.
В этой ситуации, если бы вы использовали getFirstName (), getLastName () и т. Д., Другие классы, использующие MyData, не поняли бы, что что-либо изменилось, и продолжили бы свое дело. Но то, как вы делаете вещи, выставляя данные, каждый из них должен быть модифицирован, превращая несколько минут работы в дни или больше. (И поверьте мне, такие мелкие утилиты обычно используются во многих местах.)
Кроме того, постарайтесь не застрять на примере, который я вам дал. Я могу вспомнить как минимум 5 других примеров, так что сказать, что этот пример никогда не случится с вами, или найти другой способ его решения, это не только упустить смысл, но и полностью упустить смысл.