最简单的例子就是我们找中介买房子:中介卖房子实际是帮忙房东卖房子,因此我们可以写出如下例子
package com.zcj.proxypattern;
public interface Person {
public void sale();
}
package com.zcj.proxypattern;
public class Landlord implements Person {
@Override
public void sale(){
System.out.println("房东卖房子!");
}
}
package com.zcj.proxypattern;
public class Agency implements Person {
private Person person;
public Agency(Person person) {
super();
this.person = person;
}
@Override
public void sale(){
person.sale();
}
}
最后我们写测试类:看中介卖房子,实际上是调用了房东卖房信息
package com.zcj.proxypattern;
public class ProxyTest {
public static void main(String[] args) {
Agency agency = new Agency(new Landlord());
agency.sale();
}
}
结果:
房东卖房子!
中介只是一个代理,房子的最终信息都会与房东联系,好处就是房东不用亲自去卖房子,将客户和房东之间没那么耦合