![]() |
Стилистика именования основных функций менеджера
Изучая различные менеджеры, обнаружил, что в основном есть два стилистических подхода, например менеджер 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 и удаления из памяти. |
На примере TweenLite: твины можно создавать двумя способами:
Код AS3:
Код AS3:
И на примере TimelineLite: добавить твин на программный таймлайн можно через append() (если не ошибаюсь, форум без автокомплита). Можно назвать было appendTween его, но вот названо кратко. Краткие названия более лаконичные (естественно, если их название отражает суть метода). На мой взгляд, второй способ именования методов чересчур чопорный, излишне даже. Так что, первый вариант лучше, да. Представьте, если бы метод добавления элемента назывался вместо push каким-нибудь pushElementInThisVector ;) |
Когда изучал твин движки TweenMax и Tweener, тоже заметил, что наименование ф-ий в TweenMax по стилистике больше подходит к первому варианту, а в Tweener ко второму (напр. addTween, pauseAllTweens, removeTweens, removeAllTweens, resumeAllTweens, resumeTweens и пр.).
|
Если не возникает двусмысленности, зачем тавтология. "Вася, как тебя зовут". Конечно, лаконичные лучше. Если не возникает двусмысленности)
|
Первый метод мало того что логичнее и красивее - он еще и экономнее. Длина названий переменных/методов/классов влияет на размер получаемой swf.
|
Я голосую за первый вариант :)
UPD: хотя было у меня некоторое отклонение: Код AS3:
|
| Часовой пояс GMT +4, время: 08:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.