代理模式:爲其他對象提供一種代理以控制對這個對象的訪問。在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。
由三大要素構成:
接口:聲明真實角色實現的業務方法。
/**
* 房子接口
* @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();
}
}