我一直在研究代理类,但我不明白设计它的全部想法。
据我所知,到目前为止,它是一个包装对象,可以控制对原始对象的访问。但如果我们想控制它,为什么我们不能设计具有这些访问机制的原始类呢?
我读到这些代理对象对于跟踪方法调用、将方法调用路由到远程服务器非常有用。
但我搜索了一个可以用java向我解释这一点的问题,但我没有找到任何问题。
我将说明我所引用的书中的方法跟踪程序的代码。
public class ProxyTest {
public static void main(String[] args) throws ClassNotFoundException {
var elements = new Object[1000];
// fill elements with proxies for the integers 1 . . . 1000
for (int i = 0; i < elements.length; i++) {
Integer value = i + 1;
var handler = new TraceHandler(value);
Object proxy = Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[]{Comparable.class}, handler);
elements[i] = proxy;
}
// construct a random integer
Integer key = new Random().nextInt(elements.length) + 1;
// …Run Code Online (Sandbox Code Playgroud)