java 责任模式_责任链模式(JAVA设计模式)

这是一个CMM短彩信发送功能中用到的责任链设计模式。

public abstract class PushHandle {

//下一次运行内容

private PushHandle nextHandle;

public PushHandle(PushHandle nextHandle){

this.nextHandle = nextHandle;

}

public boolean sendPush(TaskPushMessage message){

boolean r = handle(message);

if(!r){

if(nextHandle != null){

nextHandle.sendPush(message);//关键代码

}

}

return r;

}

protected abstract boolean handle(TaskPushMessage message);

}

public class WapPushHandle extends PushHandle {

public WapPushHandle(PushHandle nextHandle){

super(nextHandle);

}

@Override

protected boolean handle(TaskPushMessage message) {

if(PUSHTYPE.WAPPUSH.getValue().equals(message.getTaskContent().getPushType())){

List phoneNumbers = new ArrayList();

for(TaskMember member : message.getTaskMembers()){

phoneNumbers.add(member.getPhoneNumber());

}

Content content = ServiceFactory.getContentService().get(message.getTaskContent().getContentID());

if(content != null){

return PushSmsSender.sendWapPush(phoneNumbers, content.getContent(), "");

}

}

return false;

}

}

public class MMSHandle extends PushHandle {

public MMSHandle(PushHandle nextHandle){

super(nextHandle);

}

@Override

protected boolean handle(TaskPushMessage message) {

// TODO Auto-generated method stub

return true;

}

}

public class SMSHandle extends PushHandle {

public SMSHandle(PushHandle nextHandle){

super(nextHandle);

}

@Override

protected boolean handle(TaskPushMessage message) {

if(PUSHTYPE.SMS.getValue().equals(message.getTaskContent().getPushType())){

List phoneNumbers = new ArrayList();

for(TaskMember member : message.getTaskMembers()){

phoneNumbers.add(member.getPhoneNumber());

}

Content content = ServiceFactory.getContentService().get(message.getTaskContent().getContentID());

if(content != null){

return PushSmsSender.sendMessage(phoneNumbers, content.getContent());

}

}

return false;

}

}

public final class PushBuilder {

private final static PushBuilder builder = new PushBuilder();

private SMSHandle handle = null;

private PushBuilder(){

//初始化push业务

WapPushHandle wapPush = new WapPushHandle(null);

MMSHandle mms = new MMSHandle(wapPush);

handle = new SMSHandle(mms);

}

/**

* 提取实例

*/

public static PushBuilder getInstance(){

return builder;

}

/**

* 发送push业务

*/

public boolean pushHandle(TaskPushMessage message){

return handle.sendPush(message);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值