代理模式(proxy model), 是23 中结构形的设计模式之一。
代理模式分静态代理和动态代理,静态代理是为一个对象进行代理操作,而动态代理可以为所有对象进行操作。那这个操作是什么呢?
现实中有很多代理模式的栗子,如购物、网络代理、雇人等等。
代理类图
代理模式一般代理类和被代理类,并且有一个共同的接口,如上图。
而代理类有被代理类的属性对象。
静态代理的实现
这是一个购物的例子,一个女孩购买物品,但是现在女孩都用网购,所有这个支付方式就用代理进行支付。
//消费接口
interface ConsumInterface {
public void buy(String name);
}
//一个女孩
class Girl implements ConsumInterface {
public void buy(String name) {
System.out.println("购买 " + name + " 成功!!");
}
}
//消费代理
class ConsumProxy implements ConsumInterface {
Girl consum;
public ConsumProxy(Girl consum) {
super();
this.consum = consum;
}
public void buy(String name) {
consum.buy(name);
}
}
//测试类
class MainTest {
public static void main(String[] args) {
Girl baby = new Girl();
ConsumInterface consum = new ConsumProxy(buy);
consum.buy("裙子");
}
}
//结果:购买 裙子 成功!!