## 代理模式
> 所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。
一般是因为客户端不想直接访问实际的对象,或者访问实际的对象存在困难,因此通过一个代理对象来完成间接的访问。
### 静态代理
> 定义主题
```java
interface Subject {
void visit();
}
```
> 实现subject的两个类
```java
class RealSubject implements Subject {
private String name = "dreamcat";
@Override
public void visit() {
System.out.println(name);
}
}
```
> 代理类
```java
class ProxySubject implements Subject {
private Subject subject;
public ProxySubject(Subject