Java 代理之静态代理

静态代理是指在程序运行前代理关系就已经存在
其代理类和委托类会实现同一接口或是来自相同的父类

定义共同接口

1
2
3
4
5
public class Sell {
	void sell();

	void ad();
}

定义委托类

1
2
3
4
5
6
7
8
9
public class Vendor implements Sell {
	public void sell() {
		System.out.println("In sell method");
	}

	public void ad() {
		System.out.println("In ad method");
	}
}

定义代理类

  1. 通过代理,可是实现对委托类被代理方法的修改,但不影响被代理方法的原始逻辑
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class BusinessAgent implements Sell {
	private Vendor vendor;

	public BusinessAgent(Vendor vendor) {
		this.vendor = vendor;
	}

	public void sell() {
		System.out.println("-- before --");
		vendor.sell();
		System.out.println("-- after --");
	}
	public void add() {
		System.out.println("-- before --");
		vendor.ad();
		System.out.println("-- after --");
	}
}