静态代理是什么
从前我们聊天是面对面直接交谈,进入互联网时代以后,我们通过聊天软件聊天,那么这个聊天软件就是一个静态代理,它代替我们将信息传递给别人。
程序设计同样适用这个逻辑,写一个中间商类,通过中间商调用下面委托类的东西给用户使用,就叫静态代理模式
静态代理有什么好处
第一、可以隐藏委托类的实现。跟别人网上聊天就可以隐蔽自己的部分信息
第二、可以实现客户与委托类间的解耦,可以让中间商做一系列赚差价的举动,而下面的委托类不用做任何改动。
静态代理示例
真实角色和代理角色都要实现同一个接口
代理角色要代理真实角色
interface Chat {
void chat(); //委托类和代理类都要实现的同一个接口
}
class Person implements Chat {
//委托类实现接口
@Override
public void chat() {
System.out.println("和妹妹聊天"); //委托人想和妹妹聊天
}
}
class Tencent implements Chat {
//代理类实现接口
private Person user; //创造一个委托人
public Tencent(Person user) {
this.user = user;
}
@Override
public void chat() {
System.out.println("提供平台"); //聊天软件要做的是提供平台
user.chat(); //委托人要做的是聊天
}
}
public class StaticProxy {
public static void main(String[] args) {
Person user = new Person(); //创建一个委托人,即真实角色
Tencent tencent = new Tencent(user); //创建一个中间商,即代理角色
tencent.chat(); //这样就可以通过代理角色直接聊天了
}
}