概述
在学习.net的时候,学习过委托,也用委托做过工作流的封装,并认为他非常的重要,所以,在学习java的时候,也去学习了这块内容,不学不知道,一学非常的吃惊,因为java的委托不像.net那样,实现底层类库对其的支持,而是通过回调的方式简介的实现这种机制,下面就开始java委托的具体实现。
“委托”的实现
架构图和类图
代码实现
B层类和接口的代码
//CallBack接口
public interface ComputeCallBack {
public void onComputeEnd();
}
//被监听类
public class CallBackBLL {
public void compute(ComputeCallBack callback){
if(callback != null){ callback.onComputeEnd(); }
}
}
U层类的代码
//回调接口实现类
public class MyComputeCallBackImpl implements ComputeCallBack{
@Override
public void onComputeEnd() {
System.out.println("外部类的“委托”");
}
}
public class TestDelegate {
public static void main(String[] args) {
TestCallBack testCallBack = new TestCallBack();
//匿名类的“委托”,省略
//外部类的“委托”
MyComputeCallBackImpl myComputeCallBackImpl = new MyComputeCallBackImpl();
testCallBack.compute(3, myComputeCallBackImpl1);
}
}
总结
委托的思想就是,把具体做的部分,交给调用方处理。