我正在为我的系统构建一个 API,它接收 UDP 消息并解析它们。现在我需要通知开发人员这些更改。
目前我有两种实现方式,但我不确定哪一种更好,以及是否还有其他选择。
解决方案 A ArrayBlockingQueue
它似乎在空闲时不消耗任何功率。在 API 方面,当我想通知新的更改时,我会创建一个静态数组并向其中添加消息。因此,在开发人员方面,我可以将它放在一个线程中以侦听任何新消息。用户将获取消息,检查其类型和属性等。
解决方案 B 回调
我相信这个解决方案会更漂亮,更有条理。我只需创建一个包含所有可能通知类型的接口,然后开发人员就可以实现这个接口。在 API 方面,我有一个相同侦听器的哈希图,以便 API 可以通知多个相同类型的侦听器。
还有更多的想法或建议吗?