Распостранение изменений, Change propagation
От: chudo19  
Дата: 22.09.06 10:17
Оценка:
Трудно формализовать но попробую, надеюсь на понимание.
Обычно это встречается в графав\деревьях объектов в которых нужно распостранение неких связаных изменений.
Для примера : Написание механизма Layouts для контролов, DataBinding , графические constraints в визуальных редакторах итд.
Каждый раз встает дилема (у меня) , включать ли каскадное обновление мгновенно или кешировать.
Вроде как включать мгновенно не стоит, потому как данные обычно не меняются по одиночке, Так для Layouts вроде как стоит дождатся некоего цикла update для окошек и лишь в конце разом обработать все layouts в зависимости от измененных позиций и размеров, с другой стороны отложенное распостранение изменений требует постоянного отслеживания , инвалидаций и еще тучу вспомогательных вещей в мемберах объектов , и часто все же тоже "тригерит" некий обход по графу но только теперь для выставления флагов valid/invalid.
Еще и после обновления надо как то все флаги ресетить.
В общем вопрос таков ,видимо:
Какие признаки по вашему мнению указывают на выбор реализации кешерованая\мгновенная?
Когда оправдывает себя та или иная архитектура? Возможно это зависит от количесва мгновенных измененений ожидаемых в системе,но помоему такую вещь довольно сложно отченить заранее да и количество отложенных изменений (вместе с валидацие — инвалидацией) ведь тоже будет расти примерно так же?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.