消息模式
最近看到一个应用,虽然代码量不大,但设计却很新颖,有种麻雀虽小,五脏俱全的感觉,在这跟大家分享下
先看下大致结构:

其中
1. AsyncWorker:抽象的业务接口,提供了doWork方法,具体的业务处理逻辑由子类来封装
2. AbstractNapoliWorker<T>:总控制器
a) 定义泛型,由子类来控制解析出来的消息类型,自由灵活。
b)对doWork方法初步实现,引入了一些控制逻辑
protected T parseMessage(Serializable msg) { if (msg == null) { return null; } if (msg instanceof String) { //业务处理 return ...; } return null; }parseMessage方法,控制的过死,每一种类型(如:String)只能按一种方式来解析,不灵活,如果入参再增加一个类型参数,用于控制msg采用何种方式来解析,也许会更好些。