Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.03.2011, 13:47
Alexmody вне форума Посмотреть профиль Отправить личное сообщение для Alexmody Найти все сообщения от Alexmody
  № 1  
Ответить с цитированием
Alexmody

Регистрация: Dec 2010
Сообщений: 177
По умолчанию Стилистика именования основных функций менеджера

Изучая различные менеджеры, обнаружил, что в основном есть два стилистических подхода, например менеджер Sounds статик класс/синглтон/экземпляр:

1.
Sounds.add(); - добавляет звук в список менеджера
Sounds.remove(); - удаляет звук из списка менеджера
Sounds.destroy(); - удаляет все звуки + очищает сам менеджер для GC т.е. он больше не используется в программе.
Sounds.pause(); - пауза всех звуков
Sounds.resume(); - восстановление проигрывания звуков.

2.
Sounds.addSound(); - добавляет звук в список менеджера
Sounds.removeSound(); - удаляет звук из списка менеджера
Sounds.removeAllSounds();
Sounds.pauseSounds();
Sounds.resumeSounds();

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

Второй более понятен для юзера-программиста, но есть некоторое нагромождение в именовании функции.

Т.е. в имени функции идет пояснение.
Логически, если менеджер называется Sounds (звуки), то соотв. функция должна работать с элементом звука и вызывая add можно понять, что операция идет над элементом менеджера. Но, иногда в менеджер приходится, добавлять не только звуки,но и что-то еще, тогда получается две функции add() и уже приходится конкретизировать: addSounds/addChannel. Тем не менее совпадения имен функций менеджера встречаются редко и можно называть функцию просто add.

Какую стилистику из (приведенных двух) именования функций менеджера вы применяете?

Кстати? также интересно, альтернативе destroy можно найти, remove, kill, clear, unregister и пр.
Хотя у меня remove ассоциируется с add, т.е. с добавлением/удалением одного элемента в менеджере. А destroy/kill ассоциируется уже с удалением всех элементов менеджера и собственно самого менеджера, т.е. подготовка его для GC и удаления из памяти.


Последний раз редактировалось Alexmody; 04.03.2011 в 15:09.
Старый 04.03.2011, 14:04
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
На примере TweenLite: твины можно создавать двумя способами:
Код AS3:
new TweenLite()
и
Код AS3:
TweenLite.to()
Почему так сделано - загадка, второй способ более ресурсоемкий, так как вызывается статический метод, возвращающий экземпляр класса TweenLite.
И на примере TimelineLite: добавить твин на программный таймлайн можно через append() (если не ошибаюсь, форум без автокомплита). Можно назвать было appendTween его, но вот названо кратко.
Краткие названия более лаконичные (естественно, если их название отражает суть метода). На мой взгляд, второй способ именования методов чересчур чопорный, излишне даже. Так что, первый вариант лучше, да.
Представьте, если бы метод добавления элемента назывался вместо push каким-нибудь pushElementInThisVector
__________________
тут я

Старый 04.03.2011, 15:05
Alexmody вне форума Посмотреть профиль Отправить личное сообщение для Alexmody Найти все сообщения от Alexmody
  № 3  
Ответить с цитированием
Alexmody

Регистрация: Dec 2010
Сообщений: 177
Когда изучал твин движки TweenMax и Tweener, тоже заметил, что наименование ф-ий в TweenMax по стилистике больше подходит к первому варианту, а в Tweener ко второму (напр. addTween, pauseAllTweens, removeTweens, removeAllTweens, resumeAllTweens, resumeTweens и пр.).


Последний раз редактировалось Alexmody; 04.03.2011 в 15:11.
Старый 04.03.2011, 15:43
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если не возникает двусмысленности, зачем тавтология. "Вася, как тебя зовут". Конечно, лаконичные лучше. Если не возникает двусмысленности)
__________________
Reality.getBounds(this);

Старый 04.03.2011, 16:43
shootkin вне форума Посмотреть профиль Отправить личное сообщение для shootkin Найти все сообщения от shootkin
  № 5  
Ответить с цитированием
shootkin

Регистрация: Apr 2010
Сообщений: 32
Первый метод мало того что логичнее и красивее - он еще и экономнее. Длина названий переменных/методов/классов влияет на размер получаемой swf.

Старый 04.03.2011, 16:58
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 6  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Я голосую за первый вариант

UPD: хотя было у меня некоторое отклонение:

Код AS3:
public function playSound(type:uint):void
 
public function playAmbienceSound():void


Последний раз редактировалось Hidest; 04.03.2011 в 17:40.
Создать новую тему Ответ Часовой пояс GMT +4, время: 07:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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