【发布时间】:2012-09-21 20:01:47
【问题描述】:
对于 Java 生态系统相对较新的人来说,是否有一种相当轻量级的方式来执行 Qt 和 Django 等框架对其信号/接收器系统所做的事情,其中组件可以说“我在做某事”,以及其他组件可以以相当松散耦合的方式处理它吗?
如果这个问题未能通过“单一客观答案”测试,我提前道歉。
编辑:为了添加更多上下文,这与 Web 服务的数据库驱动应用层有关。某些资源在持久化时还需要保存包含额外上下文信息的审计记录。在 Django 中,我会通过信号机制来做到这一点,或者使用几个现有的库之一来做到这一点。对于 Scala 程序,我使用回调函数制作了自己的 hacky 东西,但使用一流的函数更容易。我毫不怀疑诸如 Swing 之类的框架为这种事情提供了便利,但我(也许是不合理的)很想将这种依赖添加到目前相当普通的应用程序中(并不是说 Django 本身不是一个大量依赖原版 Python!)
【问题讨论】:
-
你说的是event-driven models吗?
-
在中型到大型组件级别,您有实现 2 个或更多方法的接口,我认为依赖注入已经赢得了如何耦合组件的战斗。在小层面(例如向 GUI 按钮提供操作),侦听器模式为王。
-
@normalocity:是的,但与 GUI 编程没有直接关系。
-
JavaFx 通过其绑定 API 提供了类似的机制。
标签: java signals-slots