Каким образом отделять UI от логики в «глубоко интерактивном» процессе, и нужно ли вообще?
Пример глубоко интерактивного процесса — обработка файлов по GTD. Схема, например, тут:
http://anabubula.com/files/gtd4iphone_diagram001.png
Т.е. есть некоторый процесс, у которого достаточно много состояний; в каждом состоянии для перехода в другое нужно сделать выбор (иногда многовариантный); и почти в каждом из листовых состояний для завершения требуется дополнительный ввод информации различного характера от пользователя. К тому же, все должно происходить быстро и ненавязчиво, поэтому не хочется делать что-то наподобие классического wizard-а.
Сейчас вся логика у меня сидит в коде UI. Положение осложняется тем, что приложение на Cocoa/MonoMac, поэтому (или потому что опыта работы с Cocoa нет) логика в UI-коде теряется; каждое состояние живет в своем методе-обработчике соответствующего события от UI. Хочется как-то по-другому сделать, но к красивому легковесному решению у меня придти не получается, поэтому и пишу.
Всех с наступившим и удачи в новом году!
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.