Показать сообщение отдельно
Старый 12.06.2010, 19:18
NeonSelf вне форума Посмотреть профиль Отправить личное сообщение для NeonSelf Найти все сообщения от NeonSelf
  № 6  
Ответить с цитированием
NeonSelf

Регистрация: May 2010
Адрес: Украина, Донецкая обл., Харцызск
Сообщений: 13
ТОВАРИЩИ!!! Сеттер и геттер намного полезнее чем здесь описано,приведу несколько примеров:

1) нужно сделать в обьекте переменную, доступную только для чтения извне, но не для установки - тогда сама переменная делается private, и создается функция-геттер выдающая ее значение (для свойств-обьектов придется сначала сделать копию этого обьекта, чтобы не выдывать геттером ссылку на приватный обьект)

2) если добавление нового свойства создает избыточность данных. типичный пример - вектор (x,y) у которого иногда нужно узнавать длину length. Очевидно, что длина - значение вычисляемое, а значит его хранить не обязательно, можно написать геттер, который будет вычислять длину по значениям текущих координат вектора : return Math.sqrt(x*x+y*y)

да и для читабельности кода геттер и сеттер лучше, чем явный вызов методов

главное - нужно помнить, что удобство написания кода и скорость его выполнения - совсе разные вещи, поэтому в критических местах все-таки приходится кешировать избыточную информацию в виде отдельных переменных (как например длина вектора). даже сам Adobe этим не гнушается, вспомнитье хотябы свойство всех отображаемых обьектов "cacheAsBitmap"