![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Зачем нужны get и set?
Что они упрощают? Чем помогают? |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Цитата:
![]() |
|
|||||
|
Цитата:
__________________
местонахождение |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Цитата:
![]() |
|
|||||
|
private var + get method = read only
private var + set method = write only |
|
|||||
|
get и set - это чисто синтаксический сахар для геттеров и сеттеров, чтобы () не писать при доступе. В Java их нет - никто особо не обламывается, пишут getValue():TypeOfValue и setValue(value:TypeOfValue):void.
Еще по мимо сахара - если ты создал открытое поле value, а потом решил сделать его геттерами/сеттерами - тебе не надо как в Java ползать по всему коду, где это поле используется и добавлять скобочки вместе с приставками get или set - доступ что к геттеру/сеттеру, что к открытому полю - одинаковый. А вот ситуаций, когда нужно лепить геттеры/сеттеры, хотя, вроде бы, можно обратится к полю напрямую - выше крыши, можно описывать долго: - создание полей "только чтение"; - дополнительные проверки правильности значения в сеттере; - обновление значений в сеттере; - вычисление значения сразу в геттере (без хранения в поле); - вычисление параметров (валидации) в геттере только при наличии невалидных данных (при реализации механизма валидации для экономии ресурсов), а в сеттере только флаги "невалидно" выставлять; - всяческие обертки: public function get value():int { return _implementor.value; } public function set value(value:int):void { _implementor.value = value; } и т.д. и т.п. Последний раз редактировалось expl; 17.02.2012 в 22:08. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|