标签:notification 通知 结构 设计 java
很久没总结这段时间的知识了,趁着今天有空,总结一下。先来记录下自己做的系统通知依赖jar的设计,不论好坏,权且当做自己学习的一个过程。
在写设计之前,先来简单介绍下需求。需求抽象后可以归纳为:在特定条件下,将某条系统数据以某种特定结构通知给相关的用户。
根据上面的抽象,存储的结构已经可以设计出来。如下图。
实体部分:
Notification:通知主实体。
NotificationInfo:通知的详细信息。分开是考虑到通知是作为jar使用的,不同业务的扩展属性不同。
NotificationSchedulePlan:控制定时通知、即使通知的控制。
NotificationReadHistory:消息已读记录。
以上结构,是分开还是放在一张表里面,由系统复杂度和业务复杂度决定。并不是一味的分开、合并,毕竟要考虑到项目的时间约束,收益,成本问题。
其中NotificationInfo建议在业务模块实现。
Service部分:
NotificationUserConfig:业务系统对是否通知客户的rule设定。
NotificationService:业务系统获取需要通知列表和具体通知的入口。
NotificationFactory:控制不同类型通知的generator调用,有业务系统调用。
NotificationGenerator:BizA表示某种业务领域,从模式上应该提供defaultGenerator。每个generator根据需求提供日志内容生成器。
具体实现上不复杂,最终提供一个notification的依赖jar,系统引用后提供factory、generator、type实现。结构上实现复用。
再提供一个前端的查询接口,在browser中显示即可。读取方式可以是常规的轮询、长连接等。这些资料网上很多。
标签:notification 通知 结构 设计 java
原文地址:http://blog.csdn.net/paristao/article/details/45643651