静态代理
程序员文章站
2022-06-09 21:39:21
...
静态代理分为三部分:
抽象角色:抽象角色给继承自己的角色制定规则,是一个接口。
代理角色:代理角色是一个中间角色,丰富抽象角色制定的规则的内容,是一个类。
真实角色:真实角色是一个真正意思上的实施角色,抽象角色制定的规则都是由他去做,是一个类。
看抽象角色的代码:
package com.top;
public interface Action {
//抽象角色,给子类定义规则。
public void doAction();
public void sayGood();
}
代理角色的代码:
package com.daili;
import com.real.Real;
import com.top.Action;
public class Daili implements Action{
private Real real = new Real();
/*
* 代理主要是中间作用,
* 抽象角色规定真实角色去做实际的事情,
* 代理角色则是作为一个中间角色来调节真实角色的行为,
* 来丰富抽象角色规定的方法。
* */
public Daili(Real real) { //给定一个关于真实角色的构造方法。
this.real = real;
}
@Override
public void doAction() {
real.doAction(); //代理实现了real中的doAction方法
}
@Override
public void sayGood() {
real.sayGood(); //代理实现了real中的sayGood方法
real.doAction();//这里还可以实现doAction,丰富了sayGood方法的内容!
}
}
真实角色的代码:
package com.real;
import com.top.Action;
public class Real implements Action{
@Override
public void doAction() {
System.out.println("实现了doAction方法!");
}
@Override
public void sayGood() {
System.out.println("实现了sayGood方法!");
}
}
测试代码:
package com.test;
import com.daili.Daili;
import com.real.Real;
public class TestProxy {
public static void main(String[] args) {
Real real = new Real() ; //创建真实角色,一切方法都是由真实角色去完成,所以需要。
Daili daili = new Daili(real); //实现构造
daili.doAction(); //完成代理
}
}
下一篇: Proxy