Я разрабатываю простую симуляцию MCU на основе Java для Pic16F84 µC. Этот симулятор разделен на две части:
- Симуляция µC (память, процессор, ALU и т. Д.)
- Графический интерфейс пользователя (JavaFX) для отображения содержимого памяти и т. Д.
Как я могу реактивно соединить симулятор с пользовательским интерфейсом? Я хочу разработать симуляцию µC как независимую единицу JavaFX. Это означает, что я не хочу использовать классы связанных свойств JavaFX в качестве полей классов внутри классов симулятора.
Например, допустим, у меня есть следующий класс контроллера, связанный с представлением FXML:
public class SimulatorController implements Initializable {
@FXML private Label memoryContent;
private Pic16F84Simulator simulator;
...
public SimulatorController() {
simulator.getMemory().addPropertyChangeListener(event -> {
memoryContent.setText((String) event.getValue());
}
}
}
Я использую PropertyChangeListener
s для обновления реактивной. Конечно, в большинстве случаев логика слушателя не так проста. Таким образом, база кода растет очень быстро.
Есть ли более элегантный способ соединения пользовательского интерфейса JavaFX с пользовательским * 109 * независимым внутренним классом?
С независимым, я имею в виду, я мог бы извлечь реализацию симулятора без каких-либо оставшихся зависимостей JavaFX.