SAS.Wiki

Веб-картография и навигация

Инструменты пользователя

Инструменты сайта


sasdev:архитектура_программы

Это старая версия документа.


Архитектура программы

Практически повсеместно в SAS.Планете используются подписки на события. То есть, если какой-то объект может меняться, то он наследуется от интерфейса IChangeable у которого есть ChangeNotifier: INotifier позволяющий любому заинтересованному объекту подписаться на уведомления об изменениях. Обработчики этих уведомлений должны быть максимально легковесными и не занимать много времени.

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

Плюс они должны по максимуму гасить продвижение волны уведомлений - если изменчивый объект A зависит от изменчивого объекта B, то объект А, после получения уведомления об изменении B, должен проверить реально ли это влияет на его собственное состояние и отправлять уведомление о своем изменении только если оно действительно произошло.

Конвейер подготовки видимого изображения

Перевод этой страницы: