使用基本设计模式在Java中模拟事件驱动的编程模型

时间:2012-10-29 04:25:35

标签: java design-patterns event-driven

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

我的解决方案有2个队列作为发布订阅(aka。observer)频道。发布渠道将注册针对特定事件类型的事件,例如单击。

民意调查元素 - >按钮1单击||按钮1再次单击||按钮1单击特定时间。 < - 发布者队列

如果出现新的发布,

另一个订阅频道将存储事件监听器

民意调查元素 - >听众1 ||听众2 || - <用户队列。

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

此方案类似于电子邮件简报订阅。

在OO实现中,将有Publishers对象和Subscribers类。实际上是详细的发布者实施和详细订阅者实现的队列。此外,Mediator设计模式也被用于协调发布者类和订阅者类。

我的解决方案有任何缺陷吗?

1 个答案:

答案 0 :(得分:0)

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

基本事件的观察者/订阅者和Mediator,如果您需要按特定顺序协调发送事件。