java - 一个 IncallingHandler 的多个接口(interface)

标签 java distributed invocation method-invocation

是否可以为具有不同接口(interface)的多个对象定义一个调用处理程序(代理)?

因为这个代理对对象所做的事情(所有检查等)是相同的(并且它们共享一个锁管理表,我更喜欢将其放在代理上的一个地方),

有办法做到吗?

谢谢, 阿里安

最佳答案

那么,实现这一点的方法是使用一个代表通用 IH 代码的基类,然后为每个特定调用对其进行子类化。

否则,您可以检查传入的对象,并确定适当的操作:

public Object invoke(Object proxy, Method method, Object[] args) {
    if (proxy instanceof InterfaceA) {
        handleInterfaceA(proxy, method, args);
    } else if (proxy instanceof InterfaceB) {
        handleInterfaceB(proxy, method, args);
    }
}

但是由于 Java 已经有了类分派(dispatch)机制,所以使用它比使用一堆 IF 或 switch 语句更好。

关于java - 一个 IncallingHandler 的多个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13338217/

相关文章:

java - FlowLayout 的顶部对齐

java - 将变量/数组与表达式分开,并删除重复项?

c# - 为什么在参数列表评估后执行空检查?

java - 使用 ClassLoader 加载的类无法访问已更改的变量

java - 如何在放心框架中使用索引从 jsonpath 获取第一个元素?

java - 带有 ArrayAdapter 的 Android ListView 不显示任何内容

python - 为什么 Celery 不将时间戳嵌入到排队消息中?

erlang - Erlang 是专为在单个多核机器上运行而设计的,还是可以分配进程?

Erlang负载均衡器

python - 是否可以使用逻辑语句作为参数来调用python函数?