Spec-Zone .ru
спецификации, руководства, описания, API
JavaFX 8.0

Пакет javafx.beans.binding

Характеристики Привязки

См.: Описание

Пакет javafx.beans.binding Описание

Характеристики Привязки

Привязка собирается из одного или более источников, обычно называемых их зависимостями. Привязка наблюдает свои зависимости для изменений и обновляет ее собственное значение согласно изменениям в зависимостях.

Почти вся привязка, определенная в этой библиотеке, требует реализаций Observable для их зависимостей. Уже есть два типа реализаций если, свойства в пакете javafx.beans.property и заметные наборы (ObservableList и ObservableMap). Привязка также реализует Observable и может снова служить источниками для другой привязки, позволяющей создать очень сложную привязку из простых.

Привязка в нашей реализации всегда вычисляется лениво. Это означает, если зависимость изменяется, результат привязки не был сразу повторно вычислен, но это отмечается как недопустимое. В следующий раз, когда значение недопустимой привязки требуют, оно повторно вычисляется.

Высокоуровневый API и Низкоуровневый API

Обязательный API примерно делится на две части, Высокий уровень Обязательный API и Низкий уровень Обязательный API. Высокий уровень Обязательный API позволяет создавать простую привязку удобным способом. Определение привязки с Высокоуровневым API должно быть прямым, особенно когда использующийся в IDE, который обеспечивает завершение кода. К сожалению, у этого есть свое ограничение, и в той точке играет роль Низкоуровневый API. Опытные разработчики Java могут использовать Низкоуровневый API, чтобы определить привязку, если функциональность Высокоуровневого API не достаточна или улучшить производительность. Основными целями Низкоуровневого API является быстрое выполнение и небольшой объем потребляемой памяти.

Следующее является примером того, как могут использоваться оба API. Принятие у нас есть четыре экземпляра DoubleProperty a, b, c , и d, мы можем определить привязку, которая вычисляет a*b + c*d с Высокоуровневым API например как это:

NumberBinding result = Bindings.add (a.multiply(b), c.multiply(d));

Определение той же самой привязки, используя Низкоуровневый API могло быть сделано как это:


DoubleBinding foo = new DoubleBinding() {

    {
        super.bind(a, b, c, d);
    }

    @Override
    protected double computeValue() {
        return a.getValue() * b.getValue() + c.getValue() * d.getValue();
    }
};

JavaFX 8.0

Copyright (c) 2008, 2013, Oracle и/или его филиалы. Все права защищены. Использование подвергается срокам действия лицензии.