Показать сообщение отдельно
Старый 23.09.2011, 00:06
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 6  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Сообщение от dimarik Посмотреть сообщение
Да, есть. На примере Array и NameSpace. Или это множественность конструкторов )
Дык в своем классе тоже никто не мешает написать такое:
Код AS3:
/**
* А здесь мы пишем:
* если передается строка, то...
* и т.д. и т.п.
*/
public function MyClass(...args)
{
   if (args != null && args.length == 1 && args[0] is String)
   {
       ...
   }
   else
   {
       ...
}
Было бы ради чего, MyClass.createByString("line") в 1000 раз лучше читается и комментарии нафиг не нужны.

Недостаток перегрузки в AS3 доставляет только 1 неудобство: придумывание дурацких префиксов к именам методов, а так все что можно сделать с перегрузкой, можно сделать и без нее.

Ну разве что, говорят, в при реализации паттерна Visitor сложнее ошибиться с вызовом правильного метода, если есть перегрузка методов по параметра в языке.
Т.е. все методы accept называются одинаково, только параметры разные принимают, значит вызвать "не тот" не получится, но это явно не глобальная проблема.


Последний раз редактировалось expl; 23.09.2011 в 00:14.