У меня есть приложение, в котором некоторые значения переменных должны публиковаться в очереди сообщений при изменении. То есть, если вызывается сеттер var, я хочу, чтобы это как-то заметили, и после установки нового значения я хочу, чтобы оно было опубликовано в MQ.
Некоторое время назад я сделал что-то подобное с Perl/Moose, установив after-modifier (выполнив публикацию) для методов с определенным атрибутом метода. Это решение было очень элегантным и не требовало никаких синтаксических издержек, кроме дополнительного атрибута метода.
Что было бы хорошим решением с использованием возможностей Scala (2.10) без использования неуклюжих шаблонов объектно-ориентированного программирования?
Обновление: я хотел бы добиться того, чтобы код выглядел примерно так:
@Publishable var someProperty = 42
or
domainSpecificLanguageMagic someProperty = 42
Одна из проблем заключается в том, что эти свойства могут быть заданы рефлексивно, поэтому метод установки с другим именем (вероятно?) не вариант.