设计模式之代理模式
应该是(看起来)比较简单的一个设计模式,中心思想就是让一个代理类来调用真实的接口,这样一来可以再代理中进行权限控制,一些与业务无关的代码的加入等。
UML 类图
举个栗子
Client
package designpattern.proxy;
/**
* Created by Frog on 2016/8/23.
*/
public interface Subject {
void write();
}
Subject
package designpattern.proxy;
/**
* Created by Frog on 2016/8/23.
*/
public interface Subject {
void write();
}
RealSubject
package designpattern.proxy;
/**
* Created by Frog on 2016/8/23.
*/
public class Writer implements Subject {
@Override
public void write() {
System.out.println("写了一本完美世界");
}
}
Proxy
package designpattern.proxy;
/**
* Created by Frog on 2016/8/23.
*/
public class ProxyWriter implements Subject {
private Subject realSubject;
public ProxyWriter(Subject subject) {
this.realSubject = subject;
}
@Override
public void write() {
System.out.println("呱呱代笔!");
realSubject.write();
}
}
Result
呱呱代笔!
写了一本完美世界
应用
- 虚拟代理。根据需要创建对象。
- 远程代理。不懂
- 安全代理。控制权限。
- 智能指引,调用真实的对象时,代理处理另外一些事。其实感觉这个和第三点是一样的。
- 上一篇 设计模式之装饰模式
- 下一篇 设计模式之观察者模式