gpt4 book ai didi

java - 这种模式的名称是什么? (回答 : Remote Proxy)

转载 作者:行者123 更新时间:2023-11-30 06:35:03 28 4
gpt4 key购买 nike

考虑一个类 OriginalClass,它可能在运行时可用,也可能不可用。 OriginalClass 有一个方法 doSomething 如果它的类可用,应该执行该方法。

解决这个问题的一种方法是创建一个类,该类也有一个 doSomething 方法,该方法使用反射调用 OriginalClass.doSomething。像这样:

public class CompatibilityClass {

private static Method originalClass_doSomething = null;

static {
initCompatibility();
};

private static void initCompatibility() {
try {
originalClass_doSomething = Class.forName("originalClass").getMethod("doSomething", new Class[] {});
} catch (NoSuchMethodException nsme) {
} catch (SecurityException se) {
} catch (ClassNotFoundException cnfe) {}
}

public static void doSomething() {
if (originalClass_doSomething != null) {
try {
originalClass_doSomething.invoke(null, new Object[]{});
} catch (Exception e) {}
}
}

}

这里应用的设计模式的名称是什么?我怀疑它是AdapterBridgeFacadeProxy,但我不确定是哪个。

最佳答案

我会说它是 proxy pattern .

您已经创建了一个代理类,它包装了血淋淋的反射内容并将方法调用委托(delegate)给另一个对象。

A proxy, in its most general form, is a class functioning as an interface to something else. The proxy could interface to anything: a network connection, a large object in memory, a file, or some other resource that is expensive or impossible to duplicate.

您的模式非常类似于通过网络执行某些方法调用。

关于java - 这种模式的名称是什么? (回答 : Remote Proxy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416153/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com