用Scala macros实现DCI

12-12-11 banq
源码见内:用Scala macros实现DCI:DCI/scaladci · GitHub

主要使用trait mixin将角色行为混入实体Account中。Context提供混合杂交场所:

trait Context {
  implicit protected def obj2binder[OBJ](obj: OBJ) = new Binder(obj)

  protected class Binder[OBJ](val obj: OBJ) {
    def as[ROLE] = macro Context.bind[OBJ, ROLE]
  }
}
<p>

Binder中的as[ROLE]方法调用绑定宏macro ,创建Account with Source.。

[该贴被banq于2012-12-11 09:13修改过]

         

lshoo
2013-05-05 19:05
准备学习Scala Macros

猜你喜欢