![]() |
Вопрос про get и set
Теперь когда более-менее ясно про организацию классов, хотелось бы понять как между ними делать взаимодействие.
Я вроде правильно написал getter и setter? Код AS3:
Код AS3:
|
В момент
Код AS3:
Код AS3:
|
DenDobrii, вы движетесь в верном направлении, но пропустили важную вещь - конвенции. Я ж вам уже писал, что имена свойств и методов(если вы выкладываете код, по крайней мере, хотя и для себя полезно не быдлокодить) должны полностью отражать суть и быть ясными и понятными даже людям далёким от программирования.
Например, если вы делаете игру про инопланетян, то вам нужен класс Alien, Spaceship, Space. В классе Alien приватные поля _health:int, _readyState:int, _dead:Boolean, и методы getHealth(), isDead(), getReadyState() - это полоса готовности пришельца, допустим, к стрельбе или удару, подобно кончающимся силам живого человека, hit(), takeDamage(), - эти для ударов других пришельцев нашим, тоесть для ударов других экземпляров или наследников класса Alien. |
ZackMercury, спасибо за конвенции. Я их не пропустил
|
Цитата:
Негативное мнение вызвано необходимостью отладки и поддержания проекта. В хороших IDE корректно покажется текущее значение геттера с произвольной цепочкой вложенности просто при наведении курсора мыши на имя вызываемого геттера в редакторе. |
Можно и геттерами, можно и простыми методами. Кажется, в Муке было что-то нехорошее сказано в пользу геттеров и сеттеров, вот я и использую методы.
|
Цитата:
В ас3 геттеры / сеттеры не идеальны. Они хороши, если надо в сеттере передать всего один параметр. А если больше? Не всегда удобно |
caseyryan, в аксессоры вряд ли придётся передавать более, чем 1 параметр. Для этого есть обычные методы.
В целом, я согласен с dimarik. |
Можно например сделать setPosition(x:int, y:int), или setSize(width:int, height:int). Но сеттеры и геттеры должны писаться по единому стандарту. Если есть getHealth(), то сеттер должен быть setHealth(value:int)
В джаве это стандарт. АС3 конечно не джава, но это говорит о том, что стандарт все-таки вполне нормальный и общепринятый. Ничего плохого в этом нет. Плохо - это когда название метода вообще не информативно Цитата:
|
По вашему getPosition должен возвращать либо экземпляр объекта, либо объект класса Point, а getSize - объект класса Rectangle, так штоли?
Как сделать setSize и getSize с двумя параметрами так, чтобы не было лишних действий/затрат памяти? Всё-таки создание экземпляра Point довольно затратная операция, а получать размеры скорее всего придётся в каждом кадре. Вот именно, два параметра - значит нет getТоЖеСамое, либо он затратный. |
| Часовой пояс GMT +4, время: 19:44. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.