1 代理模式(Proxy):为其它对象提供一种代理以控制对这个对象的访问
2 代理模式说白了就是“真实对象”的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途。
下面以一种媒婆和相亲者的例子诠释代理设计模式
//定义一个借口,定义相亲方法
interface xiangqin_activity{
public void xiangqin();
}
//定义相亲者,实现接口中相亲的方法
class xiangqinger implements xiangqin_activity{
private String name;
public xiangqinger(String s){
this.name =s;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void xiangqin() { //实现接口中的方法
System.out.println(name+"正在相亲");
}
}
//定义媒婆,同时定义了两个方法。
class matchmaker implements xiangqin_activity{
private xiangqinger x; //定义相亲者对象
public matchmaker(xiangqinger x){
this.x = x;
}
private void match(){
System.out.println("为"+x.getName()+"匹配对象");
}
private void xiangqin_afer(){
System.out.println(x.getName()+"的相亲结果反馈");
}
public void xiangqin() {
match();
x.xiangqin();
xiangqin_afer();
}
}
public class static_proxy {
public static void main(String[] args) {
xiangqinger x1 = new xiangqinger("mazhongyi01");
xiangqinger x2 =new xiangqinger("mazhongyi02");
matchmaker m1 = new matchmaker(x1);
m1.xiangqin();
matchmaker m2 = new matchmaker(x2);
m2.xiangqin();
}
}
静态代理设计模式的使用场景
例如 适用于身份信息验证
代理者可以在
match();
x.xiangqin();
xiangqin_afer();
进行操作,设定多种验证模式,假如验证信息正确,那么执行接口中想要展示的方法。