![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2009
Адрес: kup78.livejournal.com
Сообщений: 84
|
getProp() / setProp() просто способ решить некоторые проблемы языка. Все очень просто, есть свойства класса, в них храним данные и есть методы, которыми эти данные изменяем.
obj.hide(); obj.show(); obj.visible = true; obj.visible(true); // неверно |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Ну как я себе уже виртуально предсталяю - я вижу код...причем как обычно код смотрю для быстрого вникания - типа:катит.некатит.. или наоборот вникаю в конкретный кусок кода без привязки к остальному проекту. реально при быстрой прокрутке хорошо уцепится за разделенные цветами свойства свойств(во блин, какая туфтовая туфта получилась).
НО! можно хотя бы отдельно сделать тподсветку локальных переменных и классов.т.е нажимаешь,альть-вран и видишь этих затесавшихся партизанов..
__________________
Отряд Котовскага |
|
|||||
|
блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
|
В тоже время геттеры/сеттеры упрощают понимание кода — не надо задумываться, что мы делаем в текущий момент получаем свойство или его устанавливаем. Читать код тоже становиться проще. Минус остается в том, что в реализации класса мы уже имеем не одно свойство, а целых два, обозначающих одну величину, но имеющих разные области видимости. Из-за этого путаница в именованиях и необходимость использовать подчеркивания. В Делфи, например, это решается также как и в AS3 — свойства класса именуются так, как должны быть, к имени переменной, которое хранит значение добавляется префикс буква F.
Добавлено через 2 минуты В ходе умозаключений с самим собой пришел к выводу, что геттеры/сеттеры в AS3 не так уж и плохи. Для себя я выбираю именовать все непублично видимые переменные с нижним подчеркиванием, публичные без. Это должно избавить от путаницы. Последний раз редактировалось Яски; 23.05.2009 в 02:54. |
|
|||||
|
Modus ponens
|
Я приватные / протектед одинаково оформляю (с одним подчерком), хотя, это возможно и не совсем правильно, но мне так удобнее. Но, скажем так, если это будет чужoй код, который мне нужно поддерживать, то если протектед будут без подчерков, я это пропущу, а приваты скорее всего переделаю
![]() Да, и еще один неявный бонус геттеров / сеттеров в АС3 - их можно в интерфейсы запихнуть (а просто свойсва - нет)
__________________
Hell is the possibility of sanity |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Идеальный ООП это абстракция. чем ближе к абстракции тем лучше.
если я пишу a.z=2, то я имею ввиду именно это. Т.е. присваивание. смысл ООпа: я не должен знать что при этом проверяется валидность, и зет это вообще не зет, а имя второй жены канцлера, которая выбирается из списка по индексу))))) Мне очень нравится перегрузка операторов - её абстроактность. a+b, где a- белый кролик-самец,b- черная самка.. это круто.. если результатом будет либо коллекция черно-белых кроликов, либо пустая коллекция (если самка отгрызёт морковку) Жаль что перегрузку операторов, практически убрали со всех современных языков.
__________________
Отряд Котовскага |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
но зато мат. операции над матрицами, функционалами, ветвями графов итп.. выглядят красиво..
как классно C = A+B, вместо C =A.countContactanateMatrix(B) а если операций куча... помню, у нас,по дискретке Чаянову не помещались формулы на 6 квМ доске. учитывая, что он использовал краткие обозначения. Но дело даже не в том...знак + можно использовать во сногих, не связанных с чистой арифметикой случаях.. опять вернусь к кроликам. a+b =...
__________________
Отряд Котовскага |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Фиговый шаблон сеттера.
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
Время от времени мне нужно хранить угол чего-нибудь в градусах/радианах. И у меня постоянная проблема с тем, чтобы выполнялось 359 + 1 == 0 (и в обратную сторону). Были бы операторы - я бы смог это реализовать. А без них? Вот я и использую функцию keepInRange(359 + 1), которая следит за соблюдением диапазона. Есть ли способ лучше? |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|