【AOP系列】(一)—静态代理VS动态代理(Java)

基础

代理模式

    这里写图片描述

是什么

【静态代理】:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
【动态代理】:在程序运行时,运用反射机制动态创建而成。

上代码

未使用代理:

如果要在业务中加入日志记录功能,则需要修改业务类中的每个方法,破会了开闭原则:


public class UserManagerImpl implements UserManager {
   

    @Override
    public void addUser(String userId,String userName) {
        //日志
        System.out.println("start-->>addUser() userId-->>" + userId);
        //业务:实际是调用Dao添加用户
        System.out.println("添加用户");
        //日志
        System.out.println("success-->>addUser()");
    }

    @Override
    public void deleteUser(String userId) {
        //日志
        System.out.println("start-->>deleteUser() userId-->>" + userId);
        System.out.println("删除用户");
        //日志
        System.out.println("success-->>deleteUser()");
    }
}

静态代理:

在使用了静态代理之后,添加日志的代码移到了代理中,避免了修改原有的业务类,符合开闭原则。客户端调用的具体实现类变成了代理类(这个在实际中可

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值