用Scala macros實現DCI

banq發表於2012-12-11
原始碼見內:用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 class="indent">

Binder中的as[ROLE]方法呼叫繫結宏macro ,建立Account with Source.。



[該貼被banq於2012-12-11 09:13修改過]

相關文章