【问题标题】:simulate the event driven programming model in Java with basic design pattern使用基本设计模式模拟 Java 中的事件驱动编程模型
【发布时间】:2012-10-18 10:13:27
【问题描述】:

关于事件驱动的编程模型。通常雇主会提出“在没有任何外部库的情况下用 Java 模拟事件驱动的编程模型”的问题。我认为这是一个简单的问题,可以使用设计模式来回答。

我的解决方案是有 2 个队列作为发布订阅(又名观察者)通道。发布通道将注册针对特定事件类型的事件,例如点击。

投票元素 -> 按钮 1 点击 ||按钮 1 再次单击 ||按钮 1 单击特定时间。

另一个订阅通道将存储事件侦听器,如果出现新的发布,

poll 元素 -> 监听器 1 ||听者 2 || -

它将首先推入发布队列并在另一时间轮询它允许订阅者消费。订阅将使用发布者元素并应用于订阅者通道中的每个元素(在本例中为每个事件侦听器)。观察者设计模式允许组件不可知论。发布者对订阅者一无所知。

这种情况类似于电子邮件通讯订阅。

在OO实现中,会有Publishers对象和Subscribers类。实际上是详细的发布者实现和详细的订阅者实现的队列。此外,还引入了 Mediator 设计模式来协调发布者类和订阅者类。

我的解决方案有什么缺陷吗?

【问题讨论】:

标签: java design-patterns event-driven


【解决方案1】:

不,不是真的。您的解决方案非常标准且合理。

基本事件的观察者/订阅者和调解器(如果您需要以特定顺序协调发送事件)。

【讨论】:

    猜你喜欢
    • 2010-10-24
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2016-10-05
    • 2018-09-01
    相关资源
    最近更新 更多