Страницы

Поиск по вопросам

понедельник, 1 октября 2018 г.

В чем смысл геттеров и сеттеров в C++ (и не только)?

В c++ я новичок и не могу понять, для чего, собственно, нужны геттеры и сеттеры? Почему нельзя просто сделать переменные внутри класса глобальными и изменять непосредственно их? В чем необходимость делать переменную приватной и создавать функции для ее модификации или получения ее значения?


Ответ

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

В целом, можно обойтись и без них, но тогда вырастет размер кода, больше времени будет уходить на отладку, компилятор не сможет предостеречь от связанных ошибок. И чем больше/сложнее проект, тем больше пользы они будут приносить.

Комментариев нет:

Отправить комментарий