24 июня 2012 г.

У кого длиннее метод

Во Flex'е многие методы имеют длинный список параметров.
Вот к примеру сигнатура:
EventDispatcher.addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

В силу того, что параметры метода неименованные, читать код вызова не очень комфортно.

В Objective C этот вопрос решен именованными параметрами.

В коде же Flex фреймворка создатели решили это использованием вот таких комментариев: systemManager.getSandboxRoot().addEventListener (MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true /* useCapture */); 

Конечно, добавление комментария не лучшая практика, но код от этого стал более читаемый.

Без некоторых комментариев в коде Flex фреймворка просто не разобраться, и это проблема не Flex или кода, это во многом проблема асинхронности, событийной модели.

С точки зрения архитектуры одна из проблем при работе с Flex это длинные иерархии наследования. Иной раз мыслишь о копипасте или делегировании, что это более хорошие практики, когда расширяешь функционал фреймворка добавляя свои компоненты.

Однако, как платформа, как то, что она предоставляет конечным пользователям Adobe Flash и Flex это несомненно великое!
Отправить комментарий