代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
由三大要素构成:
接口:声明真实角色实现的业务方法。
/**
* 房子接口
* @author c_qinshouzhi
*
*/
public interface House {
public void buyHou();
}
package ProxyPattern;
public class People implements House{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public People() {
}
@Override
public void buyHou() {
System.out.println("爸爸买的");
}
}
package ProxyPattern;
public class Proxy implements House{
private People people;
public People getPeople() {
return people;
}
public void setPeople(People people) {
this.people = people;
}
public Proxy() {
}
@Override
public void buyHou() {
if(people.getName().equals("w")){
people.buyHou();
}else{
System.out.println("no money");
}
}
}
package ProxyPattern;
public class TestMain {
public TestMain() {
}
public static void main(String[] args) {
People p1 = new People();
p1.setName("w");
People p2 = new People();
p2.setName("s");
Proxy p = new Proxy();
p.setPeople(p1);
p.buyHou();
p.setPeople(p2);
p.buyHou();
}
}