代理模式
代理模式并不复杂,从一个形象实例来形容。
比如一个程序员,不能谁谁都来指点我干活,那我还不得累死,所以,我上面有领导,所有的工作通过领导的过滤,再根据我能不能做分到我这边,我来具体实施,所以对外需要找我的领导才行。
意图:为一个其他对象提供一个代理,对这个对象的操作,可以不仅仅是控制访问。
代码示例:
接口
public interface Do {
public void doJob();
}
程序员类:
public class Programmer implements Do {
public String disp;
public Programmer(){
}
public Programmer(String disp){
this.disp=disp;
}
public String getDisp() {
return disp;
}
public void setDisp(String disp) {
this.disp = disp;
}
@Override
public void doJob() {
System.out.println(disp);
}
}
经理类:
public class Manager implements Do {
private String disp;
private Programmer programmer;
public Manager(String disp){
this.disp=disp;
programmer = new Programmer(disp);
}
public String getDisp() {
return disp;
}
public void setDisp(String disp) {
this.disp = disp;
}
@Override
public void doJob() {
if (disp.length()<10) {
programmer.doJob();
}
}
}
调用:
public class ProxyTest {
public static void main(String[] args){
Manager manager = new Manager("Hello wor");
manager.doJob();
}
}
这是只是代理模式思想的简单示例,其核心就是把对一个对象的操作交给另一个对象来管理,管理对象的管理方式他不知道,他只知道调用他的时候他干什么。
优点:职责清晰