【Betty】发布订阅 —— 事件监听器
为什么要设计 事件监听器?
可能有同学有疑问:
作为一款
网络通信框架
,为什么要设计事件监听器
呢?
答曰:
在app开发者使用本框架去开发时,
在有些情况下,需要 监听客户端的连接状态,以便在服务端进行一些连接优化逻辑
那么,在本文中,本人来讲解下,在 Betty 中 如何设计 事件监听器:
实现思路:
要想设计监听器,就要使用到本人之前博文中,所讲解的 发布订阅设计模式(观察者模式)
但是,使用本框架进行开发,发布者如何发布消息,订阅者如何处理消息
这些逻辑都是 我们暂时 未知的,
因此,在本框架中,我们只能通过 接口 来 规范和实现 事件监听器
依照 之前博文所讲解的内容 和 上文的分析,本人现在来实现下 事件监听器:
实现代码:
事件发布者 —— ISpeaker接口:
package edu.youzg.betty.event;
public interface ISpeaker {
/**
* 新增 订阅者
* @param listener 新增的订阅者
*/
void addListener(IListener listener);
/**
* 移除 制定观察者
* @param listener 要移除的订阅者
*/
void removeListener(IListener listener);
/**
* 发布消息
* @param message 要发布的消息
*/
void publishMessage(String message);
}
事件订阅者 —— IListener接口:
package edu.youzg.betty.event;
public interface IListener {
/**
* 处理 发布者发布的消息字符串
* @param message 发布者发布的消息字符串
*/
void processMessage(String message);
}
至此,事件监听器 就设计完毕了!
具体的 发布/订阅逻辑,还是需要 框架的使用者去实现
那么,在之后的博文中,本人使用 讲解完毕的框架去 开发 聊天室时,会进行使用展示!