После небольшого исследования, теперь я понимаю, что использование геттеров / сеттеров способствует слабой связи с родительским объектом через инкапсуляцию .
В небольшом проекте с несколькими разработчиками и простыми классами преимущества этого не очевидны.
Однако представьте себе большой проект с множеством наследующих классов, а также с внешними классами, использующими методы получения / установки.
Если в будущем вам потребуется изменить или добавить некоторую бизнес-логику к значению, возвращенному получателем, вам придется перемонтировать все наследники, чтобы использовать VS получателей, получая прямой доступ к свойствам.
То же самое относится и к установщику - возможно, вы решите добавить некоторую очистку / проверку данных. Прямой доступ к свойствам обойдет эти будущие улучшения.
Аналогия: вместо того, чтобы дать своему ребенку свободный доступ к вашему кошельку / кошельку, вы заставляете ее просить у вас денег, а затем вы решаете, что и сколько дать ей.