这是一种设计模式吗?帮我识别一下

时间:2012-08-01 07:29:55

标签: design-patterns

我想知道我是否无意中使用了设计模式?请帮帮我。

我有一个会生成事件的应用程序(event1,event 2,... eventn)。

我有另一个库(Event Hanlder Library),用于编写事件处理方法。

我使用一个接口(Communicator),其方法为“GenerateEvent”,由事件处理程序库实现。

最后,生成事件的主应用程序...使用反射来加载事件处理程序库,并在运行时基于事件no,事件特定类(事件处理程序)被挂钩。主应用程序使用Interface方法GenerateEvent跨

发送事件

这是一种设计模式,因为在两个组件之间使用接口来协同工作吗?如果我的解释不够,我可以用伪代码提供更多细节。

编辑:想要添加,事件的结果再次通过通信器接口返回到主应用程序,其中有另一个方法SendResult()(从事件处理程序到主应用程序)。现在这个返回功能会改变模式吗? 可能是工厂设计模式。动态加载(通过反射)+子类的初始化取决于事件??

3 个答案:

答案 0 :(得分:0)

如果没有细节,很难以任何信心回答,但是既然你提到了反思并且看起来你有一个发布/订阅模型,它听起来类似于一个事件总线,它是一个实现Observer模式。

如果您阅读该文章,您会看到它本身就将发布/订阅视为一种模式,因此您实施的完全模式肯定存在争议:)

答案 1 :(得分:0)

这是事件生成的Observer。不确定反射动态加载

答案 2 :(得分:0)

很难得出结论你是否正确使用了这种模式而没有具体的细节。是的,正如其他人所提到的看起来你有基于事件的发布者 - 订阅者模型,很可能它可能是观察者模式。请提供更多信息!!

观察者/发布者 - 订阅者模式: 对象订阅另一个对象的特定活动并得到通知。订阅者也称为观察者,而被观察的对象称为发布者或主体。发布者在发生重要事件时通知(调用)所有订阅者,并且可能经常以事件对象的形式传递消息。

看起来你的Communicator类是生成事件和事件处理程序库的发布者,你写的是订阅者!!