消息中心设计模式UML图


简单描述下在一家公司消息中心组件对不同消息设备处理,简要类图如下


说明根据设备来源已有的包含安卓,苹果,微信公众号,支付宝服务窗4种:

IMessagePush:推送业务接口

IDbOperations:消息持久化接口(暂时存在Redis集群,对未到达app的消息会有“再登录拉取离线消息”补偿机制)

IWrapMsg:消息模板组装接口,系统中含有不同业务的消息在推送app之前做模板组装

AppAbstractHandler:app抽象推送类,是android与ios推送方式的父类。

ThirdPlatAbstractHandler:接入三方抽象推送类,已有的微信,支付宝两种。限制方法getTemplateParam(redis中查询平台的消息模板参数),getUrl跳转平台的url链接

由类图可以看到我并没有对三方的消息做离线持久化,原因是三方的方法我们并不可控

MessageDriver:抽象消息驱动类,它是所有消息类型的父类。最小子类需要实现它的run方法;新增加的其他类别消息都必须继承该类

MessageDriveManager:消息驱动管理类;

线程调用代码块大致如下

               MessageConfig adapter = new MessageConfig("p1","h2","b3");	
		int termType =MqSdkConstans.DEVICETYPE.Android;
		MessageDriveManager manger = new MessageDriveManager();
		
		if(termType ==MqSdkConstans.DEVICETYPE.Android ){
			manger.setDriver(new AndroidPushHandler());
		}else if(termType ==MqSdkConstans.DEVICETYPE.Ios){
			manger.setDriver(new IosPushHandler());
		}else if(termType ==MqSdkConstans.DEVICETYPE.Weixin){
			manger.setDriver(new WeiXinPushHandler());
		}else if(termType ==MqSdkConstans.DEVICETYPE.Alipay){
			manger.setDriver(new AliPayPushHandler());
		}
		manger.messagePush(adapter);




  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值