您的位置:首页 > 其它

设计模式-代理模式

2014-09-08 17:11 211 查看
在实际开发的时候,我们同样的一个对象,对于不同的客户,可能能够调用的方法是不一样的,就是权限的控制,这个时候,对象的方法都应该是public,那么就要给对象加上一层,通过客户的类型,决定是否可以访问,也就是说,客户不直接访问对象,而是访问给对象加上的这一层,就是代理层。

public interface T1{
public void method();
};
public class Item implements T1{
public void method();
}
public class ItemProxy implements T1{
Item item;
Client client;
public ItemProxy(Client c){
this.Client=c;
this.item=new item();
}
public void method(){
if (client,allow()){
item.method1();
}else{
return;
}
}
}
public class Client{
T1 t;
public Client()
{
t=new ItemProxy(this);
}
public void method1()
{
t.method();
}
}


这样就可以在代理类中,控制对象的访问了,当然代理模式实现方式还有很多种,(远程代理管理客户和远程对象的交互,虚拟代理控制访问实例化开销大的对象,保护代理基于调用者控制对对象方法的访问),上面只是其中的一种方式,代理模式的定义如下:

代理模式:为另一个对象提供一个替身或占位符以访问这个对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: