理解 Java 信号

主要观点:展示了不同方式处理对象状态变化的事件监听,包括基本的显式监听机制、Java 的 Observer 和 Observable 框架及自定义的 Signals 方式,对比了它们的优缺点。
关键信息:

  • 定义了TodoTodosList类,包含添加、更新、切换完成状态和删除等操作。
  • 实现了Listener接口用于监听事件,有基本的实现BasicListener和另一个AnotherListener
  • 使用 Observer 和 Observable 框架时,需在Observable的 setter 中通知观察者,Listener需实现Observer接口。
  • Signals 方式通过Signal类对可观察属性进行包装,在构造Todo对象时捕获属性变化的效果,对不同类型的可观察对象(标量、集合、字典)有不同的访问和触发效果的方法。
    重要细节:
  • 在基本监听机制中,需在TodosList中手动添加调用Listener方法的语句,且多个监听实现需依次调用。
  • Java 的 Observer 和 Observable 框架已在 Java 9 中被弃用,存在难以表达属性变化及缺乏可重用性等问题。
  • Signals 方式中,通过Signals.observe()方法捕获效果,对集合和字典类型的观察有特定的处理方式,TodosList的构造函数中可注册效果处理函数。
    示例代码可在此 GitLab 仓库查看。
阅读 9
0 条评论