我有一个应用程序,其中一些 var 值应该在 change时发布到消息队列。也就是说,如果调用 var 的 setter,我希望以某种方式注意到这一点,并且在设置新值之后,我希望将其发布到 MQ。
前段时间,我通过在具有特定方法属性的方法上设置后修饰符(进行发布)来使用 Perl/Moose 做了类似的事情。该解决方案非常优雅,除了额外的方法属性外,不需要任何语法开销。
在不使用笨拙的 OO 模式的情况下,使用 Scala (2.10) 功能的好的解决方案是什么?
更新:我想要实现的是代码看起来像这样:
@Publishable var someProperty = 42
或者
domainSpecificLanguageMagic someProperty = 42
挑战之一是这些属性可能是反射设置的,因此具有不同名称的 setter 方法(可能?)不是一种选择。