静态代理的实现无非就是三点:
1.创建真实角色
2.创建代理角色,持有真实角色的引用
3.二者实现相同的接口
举一个例子
package cpm.thread.creater;
public class StaticProxy {
public static void main(String[] args) {
Marry you=new you();
Marry weddingcompany =new WeddingCompany(you);
weddingcompany.marry();
}
}
interface Marry {
public abstract void marry();
}
class you implements Marry {
@Override
public void marry() {
System.out.println(" i am married");
}
}
class WeddingCompany implements Marry {
private Marry you;
public WeddingCompany() {
}
public WeddingCompany(Marry you) {
this.you = you;
}
private void Before()
{
System.out.println(" begin");
}
private void After()
{
System.out.println(" ends");
}
@Override
public void marry() {
Before();
you.marry();
After();
}
}
可以看见静态代理的全过程,实质上是迭代。对于我们而言,重点是调用的过程。
1.创建真实角色
2.创建代理角色,持有真实角色的引用
3.二者实现相同的接口
举一个例子
package cpm.thread.creater;
public class StaticProxy {
public static void main(String[] args) {
Marry you=new you();
Marry weddingcompany =new WeddingCompany(you);
weddingcompany.marry();
}
}
interface Marry {
public abstract void marry();
}
class you implements Marry {
@Override
public void marry() {
System.out.println(" i am married");
}
}
class WeddingCompany implements Marry {
private Marry you;
public WeddingCompany() {
}
public WeddingCompany(Marry you) {
this.you = you;
}
private void Before()
{
System.out.println(" begin");
}
private void After()
{
System.out.println(" ends");
}
@Override
public void marry() {
Before();
you.marry();
After();
}
}
可以看见静态代理的全过程,实质上是迭代。对于我们而言,重点是调用的过程。