题目
介绍下代理模式
答案
代理模式(Proxy Pattern)为其他对象提供一个代理以控制对其访问。
适用场景:
- 控制访问权限。
- 延迟加载、日志、权限检查等。
示例:上网代理
```java
interface Internet {
void connect(String site);
}
class RealInternet implements Internet {
public void connect(String site) {
System.out.println("Connecting to " + site);
}
}
// 代理类
class ProxyInternet implements Internet {
private RealInternet internet = new RealInternet();
private static final java.util.List<String> bannedSites = java.util.Arrays.asList("abc.com", "xyz.com");
public void connect(String site) {
if (bannedSites.contains(site)) {
System.out.println("Access Denied to " + site);
} else {
internet.connect(site);
}
}
}
// 测试
public class ProxyTest {
public static void main(String[] args) {
Internet internet = new ProxyInternet();
internet.connect("openai.com");
internet.connect("abc.com");
}
}
```
