Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вопрос про get и set (http://www.flasher.ru/forum/showthread.php?t=210430)

caseyryan 18.03.2015 21:13

Не обязательно вообще должен быть геттер для этого. Речь то не об этом, а о
Цитата:

Если это акцессоры, то очень фигово называются.
Я лишь говорю, что названия вполне нормальны. Лично я даже считаю, что так лучше. Вот если бы там было вместо getHealth() что-то типа ret_h(), то это было бы хренью. А интуитивно понятные названия методов, пусть даже не использующих as3'шные get / set, все равно не плохи.
Многие движки используют именно такой способ написания. В IDE можно просто написать .set и посмотреть весь список сеттеров, доступных для объекта. А попробуй сделать то же самое с get blabla / set blabla

dimarik 19.03.2015 21:28

Цитата:

Сообщение от caseyryan (Сообщение 1180188)
Чем фигово? Тем, что написаны не по стандартам as3?
В ас3 геттеры / сеттеры не идеальны. Они хороши, если надо в сеттере передать всего один параметр. А если больше? Не всегда удобно

Все проще

getHealth() -- акцессор

Код AS3:

// читаем
var health:Number = x.getHealth;
 
// пишем
x.getHealth = 100;

vs.
Код AS3:

// читаем
var health:Number = x.health;
 
// пишем
x.health = 100;

Не думаю, что getHealth — это удачное название.

caseyryan 20.03.2015 07:46

Цитата:

Не думаю, что getHealth — это удачное название.
А если свойств у объекта много, и называния не так просты как health?
Я уже говорил об этом выше
Цитата:

В IDE можно просто написать .set и посмотреть весь список сеттеров, доступных для объекта. А попробуй сделать то же самое с get blabla / set blabla
Плюс, в случае с health - это может быть только геттер или только сеттер. И если свойство только для чтения, то health = 50; кинет ран тайм эксепшен. А в случае с getHealth() / setHealth(value:int) сразу понятно чего ожидать

dimarik 20.03.2015 09:51

До рантайма не дойдет, я думаю. Свалится в компайлтайме. Я, пожалуй, все сказал, что хотел донести об акцессорах.

ZackMercury 20.03.2015 21:17

dimarik, посмеялся :D

Вот, что имелось в виду с:
Код AS3:

// читаем
var health:Number = x.getHealth();
 
// пишем
x.setHealth(100);

vs
Код AS3:

// читаем
var health:Number = x.health;
 
// пишем
x.health = 100;

P.S. В первом случае setHealth(100) выглядит даже красивей как-то :)

Wolsh 20.03.2015 23:12

Кто-нибудь, кроме dimarik, читал название темы? Сколько можно жевать про "getHealth прекрасно подходит для названия функции"? Речь о геттерах/сеттерах и их названиях. Они уродливы. Глаголы должны быть в названиях функций. Названия свойств должны быть существительными или прилагательными в случае Boolean.
К слову о конвенциях, аргумент сеттера принято [всегда] называть "value", а сам сеттер/геттер [по возможности] так же, как приватную переменную-хранилище. Названия типа get_set_getHealth (new_Health:int) невероятно уродливы.

caseyryan 21.03.2015 09:36

Цитата:

Названия типа get_set_getHealth (new_Health:int) невероятно уродливы.
Ну это да. Тут об этом и спора не было)
Спор был о getHealth() / setHealth(value:int)


Часовой пояс GMT +4, время: 21:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.