一、静态代理模式
(一)、实现步骤
- 真实角色和代理角色需要实现相同的接口
- 代理角色持有真实角色的引用
(二)、实现方式
例子:租房 真实角色:租客 代理角色:房屋中介 租客需要房屋中介代理实现租房目标(中介只是代理人,但是决定需要租客做)
interface Tenancy{
void tenancy();
}
class Tenant implements Tenancy{
String name;
@Override
public void tenancy(){
System.out.println(name+"租到了房子");
}
public Tenant(){}
public Tenant(String name){
super();
this.name=name;
}
}
class Agent implements Tenancy{
private Tenant t;
public Agent(){}
public Agent(Tenant t){
this.t=t;
}
public Tenant getTenant() {
return t;
}
public void setTenant(Tenant t) {
this.t= t;
}
@Override
public void tenancy(){
System.out.println("找房子");
System.out.println("签合同");
t.tenancy();
}
}
public class Test {
public static void main(String[] args) {
Tenant t = new Tenant("张三");
Agent a = new Agent(t);
a.tenancy();
}
}