Как это называется (код внутри)
От: andyag  
Дата: 13.06.12 17:40
Оценка:
Пишу сейчас вот такой вот велосипед:
final Readable<String> firstName = new Property<String>();
final Readable<String> lastName = new Property<String>();
Readable<String> fullName = new ComputedProperty<String>(firstName, lastName) {
  @Override
  public String compute() {
    return String.format("%s %s", firstName.get(), lastName.get());
  }
};
...
firstName.set("Bill");
assertEquals("Bill null", fullName.get());

lastName.set("Gates");
assertEquals("Bill Gates", fullName.get());

Основная идея в том, что на каждое свойство можно подписаться и реагировать когда оно изменяется. Также пишу аналогичные велосипеды для коллекций:
ObservableList<Model> models = ...;
ObservableList<ViewModel> viewModels = new ConverterObservableList<Model, ViewModel>(models, modelToViewModelConverter);

models.add(new Model(....)); // кладём сюда
ViewModel viewModel = viewModels.get(0); // достаём отсюда

На коллекции тоже можно подписываться и мониторить их.
Подскажите, пожалуйста, какие-нибудь ключевые слова по поводу этого подхода — почитать, посмотреть готовые решения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.