Здравствуйте, chernyh, Вы писали:
C>Hi All!
C>Но тут возникает проблема — эти Action'ы начинают плодиться кучами и уже есть необходимость задуматься о новом уровне абстракции всего этого. C>Что можете предложить, коллеги?
Возможны несколько вариантов:
1. Для объединения нескольких action в одно действие очень удобно использовать конвейеры, т.е. выполняющиеся один за другим последовательно action, в которых с выхода одного передается на вход следующего. Позволяет сократить захардкоденые action. Например, выбор из справочника по кнопке в поле будет последовательностью: сформировать ограничения для справочника, выбрать данные справочника, создать визуализатор справочника, выложить и отобразить модальную форму, сохранить результат в поле.
2. Когда много action являются одной подсистемой удобно подключать их к объектам сразу всем скопом. Т.е. получается такой своебразный package, содержащий action и дополнительные поля или свойства (можно их еще объединить в аспекты) для подсистемы. Например, если мы хотим реализовать версионность данных, то модифицировать нужно как объекты доступа к данным (процесс загрузки данных и сохранения), так и внешний вид представлений пользовательского интерфейса.
Делаем package и подключаем его как на сервере приложений, так и на клиенте.
3. Для структуризации удобно использовать именования через точку типа namespace в # или package в Java. Основная проблема тут — проблема найти уже существующий action для нового блока системы. Структуризация решает эту проблему.
4. Очень удобно декларативно задавать все вышеперечисленное и хранить в объектном persistent хранилище.