静态代理模式缺点:
1、调用前需要知道所有真实角色信息(可以利用反射解决:动态代理)
2、需要成倍的增加代理类
/**
* 抽象角色 定义共同接口* */
public interface IRenting {
void Request();
}
/**
* 真实角色 相当于房主
* */
public class TrueRole implements IRenting {
@Override
public void Request() {
System.out.println("房子是我的,我要租出去");
}
}
/**
* 代理角色
* */
public class AgentRole implements IRenting {
private TrueRole trole;//维护的真实角色
public void Request() {
getMoney();
if(trole==null){
trole=new TrueRole();
}
trole.Request();
}
public void getMoney(){
System.out.println("我要收中介费");
}
}
public class Client {
public static void main(String[] args) {
AgentRole agent=new AgentRole();
agent.Request();
}
}