Здравствуйте, Tanker, Вы писали:
T>Какой вариант предпочтительнее ? Какие есть еще возможности ?
Не нужно пинать view для обновления. Она должна привязываться к модели:
public interface LayoutModel {
public void addChangeListener(listener : LayoutModelListener);
public void removeChangeListener(listener : LayoutModelListener);
}
public interface StyleModel {
public void addChangeListener(listener : StyleModelListener);
public void removeChangeListener(listener : StyleModelListener);
}
public interface GroupingModel {
public void addChangeListener(listener : GroupingModelListener);
public void removeChangeListener(listener : GroupingModelListener);
}
public class View {
public View(layout : LayoutModel, style : StyleModel, grouping : GroupingModel) {
...
}
}
Вся логика работает с реализациями моделей, может устанавливать в них данные и т.п. С view логика не работает вообще. Все изменения проходят через события, на которые подписан view. Ну а view по событиям уже обновляется. Если же управлять вручную, можно где-нибудь забыть обновить view и наступит рассинхронизация моделей и отображения.