静态代理
-
1.真实角色和代理角色实现相同的接口
-
2.代理角色持有真实角色的引用,通过成员属性维护
-
3.代理行为
-
优点:
- 降低与真实角色的沟通,扩展功能的实现,降低耦合度,便于后期维护
-
举例:
- 分析房东和中介之间的关系,使用静态代理模拟流程
public class Test{
public static void main(String[] args) {
Landlord landlord=new Landlord();
Intermediary intermediary=new Intermediary(landlord);
intermediary.user();
}
//抽象角色:租客
interface User{
//方法租房
void user()
}
//真实角色:房东
class Landlord implements User{
public void user(){
System.out.println("谈房租");
}
}
//代理角色:中介
class Intermediary implements User{
//真实角色的引用
Landlord landlord=null;
//构造器,接收对象
public Intermediary(Landlord landlord){
this.landlord=landlord;
}
public void user(){
System.out.println("看房子");
landlord.user();
System.out.println("交押金");
}
}
运行结果:
看房子
谈谈房租
交押金