Я фанат модели Мартина Фаулера (устарела) модель-представление-презентатор. Я пишу класс представления Scala, содержащий несколько классов кнопок. Я хотел бы включить методы для установки свойств действий кнопок, которые будут вызываться докладчиком. Типичный фрагмент кода выглядит так:
private val aButton = new JButton
def setAButtonAction(action: Action): Unit = { aButton.setAction(action) }
Этот код повторяется для каждой кнопки. Если бы в Java / Scala был препроцессор C, я бы создал макрос для генерации этого кода, учитывая имя кнопки (пожалуйста, никаких лекций о пороках препроцессора C) Этот код, очевидно, очень многословен и повторен. Есть ли лучший способ сделать это в Scala, возможно, с использованием черт?
Пожалуйста, проведите лекции о scala.swing. Я ищу общую схему здесь.