Scala 的 listener 模式
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Scala 中也有虚类,相当于 C++ 的纯虚类,不能自己实例化。可以定义一个匿名的子类来实例化生成对象。匿名子类的写法是使用父虚类后面跟着大括号,在里面覆盖 override 父类的方法。 虚函数 abstract class Listener { def trigger } object scala { def main(args: Array[String]) = { var myListener = new Listener{ def trigger() {println(s"Trigger at ${new java.util.Date}")} } myListener.trigger() } } myListener 后面跟着的就是匿名子类的定义,定义的同时实例化生成 myListener。 结果打印 Trigger at Mon Dec 26 17:12:55 CST 2016 观察者模式 Listener 用来接收消息,Listening 类用来发送消息。 abstract class Listener { def trigger } class Listening { var listener: Listener = null def register(l: Listener)