做个笔记
增强原始方法 但不修改原方法内用,只是在调用原方法前后执行新的方法。
引用https://blog.csdn.net/weixin_40834464/article/details/82958187
public interface Human {
public void speak();
}
public class HumanShiLi implements Human{
@Override
public void speak() {
System.out.println("shili speak");
}
}
/**
* 静态代理类
*/
public class HumanProxy implements Human{
private HumanShiLi humanShiLi;
public HumanProxy(HumanShiLi humanShiLi){
this.humanShiLi = humanShiLi;
}
@Override
public void speak() {
System.out.println("代理之前");
humanShiLi.speak();
System.out.println("代理之后");
}
}
/**
* 静态代理
* 1.human 接口
* 2.huamnshili 实现类 实现 human
* 3.humanproxy 实现类 实现 human 代理 humanshili
* 主要的思路就是把,继承同一的接口的类A,放到继承接口的类B中调用,在调用前后可以加上新的方法
*
*
* Java中线程的设计就使用了静态代理设计模式,其中自定义线程类实现Runable接口,
* Thread类也实现了Runalbe接口,在创建子线程的时候,
* 传入了自定义线程类的引用,再通过调用start()方法,调用自定义线程对象的run()方法。实现了线程的并发执行。
*/
public class StaticProxyTest {
public static void main(String[] args) {
HumanShiLi humanShiLi = new HumanShiLi();
new HumanProxy(humanShiLi).speak();
}
}