0%

java委托

前言

一直很好奇 java 所谓的委托究竟是什么,在C#中听说过委托,而我找遍网络,发现 java 并不存在委托机制。
既然如此,那么 java 通过其他方式来实现 委托机制。
这里简单的讲解 java 的委托实现

探究

何为委托

其实首先关于 “委托” 这个概念,其实就是将方法函数可以作为参数来传递。
这个详细可见: 浅谈C#委托机制

java 的委托实现

java 没有委托机制,主要在于 java 隐藏了指针的操作,这使得我们没法构建指针。
但通过一些设计模型也可以达到同样的效果。

比如:

另一种实现方式

其实利用 java 的反射机制也是可以达到同样的效果。但是反射机制毕竟不安全,我就简单的说说思想。

  • 思想,就是代理委托方法的函数名参数,是字符串类型,通过传递函数名的字符串(可能还要包含包名,类名),由反射获取到对象,进一步获取到方法。

(后面有想法了,我会后续补上实现代码)

总结

其实写代码都是次要的,只要知道了某个实现算法的思想,自己就可以编写出来。