Java 代理模式 个人理解

打官司举例:
A因为xxx事需要打一场官司,就找到了律师B,然后这件事的的抽象就是一个接口,A和B都要实现这个接口也就是打官司,A对于这个接口的具体实现是提出证据,B呢就需要拿到A说的证据 然后在这个前提上进行扩充 在法律条文中找到相关内容 来打赢官司
打官司的抽象
public interface 官司 {
    public void 提出证明();
    public void 打完官司();
}
A打官司的实现
public class A implements 官司{
    @Override
    public void 提出证明() {
        System.out.println("证明材料...");
        
    }

    @Override
    public void 打完官司() {
        System.out.println("结果...");
    }
}
B代表A来打官司
public class B implements 官司{
    //拿到A给的内容
    private A a=new A();
    @Override
    public void 提出证明() {
        System.out.println("前期工作准备...");
        a.提出证明();
        System.out.println("整理相关资料...");
        System.out.println("辩证相关...");
    }

    @Override
    public void 打完官司() {
        a.打完官司();
    }
}

在这里插入图片描述

上面就是一个静态代理的实现,是在不改变一个类的情况下对一个类方法的增强,有小朋友就提问了,为什么不把他们都写在一个类里面呢,为的是规范和解耦 代码语义化。但是这种静态的实现还是会造成耦合,因为如果有下一个人C想打官司又得再去找一个律师 然后那个律师再帮他去打官司。这时候就出现了动态代理
动态代理是公用一个律师,打官司的人虽然在换,但是官司的实现和要收集证据都是相似的。Spring里面的Aop的原理就用到了动态代理

动态代理以后写…
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值