package com.toby.zerenliang;
public interface IHandle {
/**
* 邏輯處理
*
* @param mtMsg MT數據
* @return 成功返回true,否則false
*/ public boolean process(MtMsg mtMsg);
/**
* 增加下級Handler.寄主Handler可以看情況調用該下級Handler
*
* @param hdl 下級Handler
* @return 下級Handler
*/ public IHandle addNextHandler(IHandle hdl);
}
package com.toby.zerenliang;
public class MtMsg {
public int age;
public String name;
}
package com.toby.zerenliang;
public class OneHandler
implements IHandle {
private IHandle nextHdl;
@Override
public IHandle addNextHandler(IHandle hdl) {
this.nextHdl = hdl;
return this.nextHdl;
}
@Override
public boolean process(MtMsg mtMsg) {
/**
* 業務邏輯處理
*/ System.out.println("業務邏輯處理one");
if(nextHdl !=
null)
return nextHdl.process(mtMsg);
else return true;
}
}
package com.toby.zerenliang;
public class TwoHandler
implements IHandle {
private IHandle nextHdl;
@Override
public IHandle addNextHandler(IHandle hdl) {
this.nextHdl = hdl;
return this.nextHdl;
}
@Override
public boolean process(MtMsg mtMsg) {
/**
* 業務邏輯處理
*/ System.out.println("業務邏輯處理two");
if(nextHdl !=
null)
return nextHdl.process(mtMsg);
else return true;
}
}
package com.toby.zerenliang;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
MtMsg mm = new MtMsg();
mm.age = 17;
mm.name = "名字";
IHandle iHandle = new OneHandler();
iHandle.addNextHandler(new TwoHandler());
iHandle.process(mm);
}
}