请根据Java代理设计模式的四个文件名,分别是Application.java,Client.java,PictureProxy.java,Subject.java,写出符合代理模式的代码
时间: 2024-02-12 14:05:28 浏览: 75
JAVA设计模式之代理模式实例
下面是符合代理模式的Java代码:
Subject.java
```java
public interface Subject {
void display();
}
```
Application.java
```java
public class Application {
public static void main(String[] args) {
Subject subject = new PictureProxy("test.jpg");
subject.display();
}
}
```
PictureProxy.java
```java
public class PictureProxy implements Subject {
private String fileName;
private RealPicture realPicture;
public PictureProxy(String fileName) {
this.fileName = fileName;
}
@Override
public void display() {
if (realPicture == null) {
realPicture = new RealPicture(fileName);
}
realPicture.display();
}
}
```
Client.java
```java
public class Client {
private String name;
public Client(String name) {
this.name = name;
}
public void viewPicture(Subject subject) {
System.out.println(name + "正在查看图片...");
subject.display();
}
}
```
这里的代理模式实现了一个PictureProxy代理类,它在实例化时只会创建一个RealPicture对象,当用户调用它的display方法时,它会将请求传递给RealPicture对象。这样可以避免在加载图片时产生不必要的开销。在Client类中,我们使用了PictureProxy代理类来代表真实的图片对象,以便在用户查看图片时提高系统的性能。
阅读全文