另一種責任鏈實現模式
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);
}
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;
}
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;
}
}
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;
}
}
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);
}
}
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);
}
}
posted on 2012-03-15 11:18 tobyxiong 閱讀(465) 評論(0) 編輯 收藏 所屬分類: java