责任链模式(JAVA设计模式)
2014-01-07 17:26
253 查看
这是一个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<String> phoneNumbers = new ArrayList<String>();
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 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);
}
}
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<String> phoneNumbers = new ArrayList<String>();
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<String> phoneNumbers = new ArrayList<String>(); 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);
}
}
相关文章推荐
- 走穿java23种设计模式-15责任链模式详解
- 基于java的设计模式(5)责任链模式
- java 设计模式之六-责任链模式
- Java设计模式之责任链模式
- Java设计模式之责任链模式、职责链模式
- Java设计模式之责任链模式简介
- java设计模式8.迭代子模式、责任链模式、命令模式
- java 设计模式-行为模式之责任链模式
- JAVA设计模式之:责任链模式
- Java设计模式--责任链模式
- 我的Java设计模式-责任链模式
- Java设计模式之责任链模式(Chain of Responsibility模式)介绍
- 设计模式-责任链模式(Java)
- 设计模式(十三)----- 责任链模式(Chain of Responsibility)----(JAVA版)
- Java设计模式-责任链模式
- Java设计模式12——责任链模式
- 【JAVA设计模式08】——责任链模式
- java 设计模式 -- 责任链模式
- JAVA设计模式——责任链模式
- java设计模式之责任链模式