Пишу сейчас вот такой вот велосипед:
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); // достаём отсюда
На коллекции тоже можно подписываться и мониторить их.
Подскажите, пожалуйста, какие-нибудь ключевые слова по поводу этого подхода — почитать, посмотреть готовые решения.
Здравствуйте, andyag, Вы писали:
A>Пишу сейчас вот такой вот велосипед:
| Скрытый текст |
| A>A>final Readable<String> firstName = new Property<String>();
A>final Readable<String> lastName = new Property<String>();
A>Readable<String> fullName = new ComputedProperty<String>(firstName, lastName) {
A> @Override
A> public String compute() {
A> return String.format("%s %s", firstName.get(), lastName.get());
A> }
A>};
A>...
A>firstName.set("Bill");
A>assertEquals("Bill null", fullName.get());
A>lastName.set("Gates");
A>assertEquals("Bill Gates", fullName.get());
A>
A>Основная идея в том, что на каждое свойство можно подписаться и реагировать когда оно изменяется. Также пишу аналогичные велосипеды для коллекций:
A>A>ObservableList<Model> models = ...;
A>ObservableList<ViewModel> viewModels = new ConverterObservableList<Model, ViewModel>(models, modelToViewModelConverter);
A>models.add(new Model(....)); // кладём сюда
A>ViewModel viewModel = viewModels.get(0); // достаём отсюда
A>
|
| |
A>На коллекции тоже можно подписываться и мониторить их.
A>Подскажите, пожалуйста, какие-нибудь ключевые слова по поводу этого подхода — почитать, посмотреть готовые решения.
PropertyChangeSupport? и дальше в java.beans
Здравствуйте, andyag, Вы писали:
A>На коллекции тоже можно подписываться и мониторить их.
A>Подскажите, пожалуйста, какие-нибудь ключевые слова по поводу этого подхода — почитать, посмотреть готовые решения.
Вот так
Здравствуйте, andyag, Вы писали:
A>Подскажите, пожалуйста, какие-нибудь ключевые слова по поводу этого подхода — почитать, посмотреть готовые решения.
http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, andyag, Вы писали:
A>>На коллекции тоже можно подписываться и мониторить их.
A>>Подскажите, пожалуйста, какие-нибудь ключевые слова по поводу этого подхода — почитать, посмотреть готовые решения.
VD>Вот так
Во, спасибо большое