Re[3]: Framework Design
От: _vovin http://www.pragmatic-architect.com
Дата: 23.06.04 10:52
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Здравствуйте, _vovin,


_>>Строго говоря такая проблема успешно разрашается. Но только в языках, поддерживающих Continuation-Passing Style. Более того, существует ряд framework-ов с поддержкой подобной линейной структуры для web applications.


M>Я думал над этой проблемой и вот к чему пришёл: для С++, Java и C# эту задачу решить проблематично, но можно. Для этого логику представления нужно запускать в отдельном потоке. В момент вызова ShowMessage поток останавливается и главный поток возвращает страницу клиенту. Когда клиент закроет MessageBox, то форма сабмитится обратно на сервер чтобы продолжить выполнение логики. Но, как легко можно заметить, этот метод крайне не эффективен, поскольку двойной поход на сервер только для того, чтобы показать сообщение — это дорогое удовольствие.


Есть еще вариант с использованием Fibers. Он одно время обсуждался создателями CLR и C#.

В Java Cacoon framework эта проблема решена вынесением навигационного кода в JavaScript, где "продолжения" уже реализуются не сложно.
Под Unreal Engine был написан свой интерпретируемый Unreal C++ с такими возможностями от рождения.

Во многих сходных случаях проблема решалась таким же образом — ядро писалось на "низкоуровневом" языке (C++, Java), а основная логика реализовывалась на более гибком...

--

Владимир.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.