如何实现静态代理(真实应用案例)

参考答案

如何实现静态代理(真实应用案例)

下面这段代码,怎样才能在不修改UserDao接口类的情况下开事务、关闭事务。

实例:

package com.lijie;

//接口类
public class UserDao{
    public void save() {
        System.out.println("保存数据方法");
    }
}
package com.lijie;

//运行测试类
public  class Test{
    public static void main(String[] args) {
        UserDao userDao = new UserDao();
        userDao.save();
    }
}

 

修改代码,添加代理类:

package com.lijie;

//代理类
public class UserDaoProxy extends UserDao {
    private UserDao userDao;

    public UserDaoProxy(UserDao userDao) {
        this.userDao = userDao;
    }

    public void save() {
        System.out.println("开启事物...");
        userDao.save();
        System.out.println("关闭事物...");
    }

}
//添加完静态代理的测试类
public class Test{
    public static void main(String[] args) {
        UserDao userDao = new UserDao();
        UserDaoProxy userDaoProxy = new UserDaoProxy(userDao);
        userDaoProxy.save();
    }
}
  • 缺点:每个需要代理的对象,都要自己重复编写代理。
  • 优点:但是可以面相实际对象或者是接口的方式实现代理。

 

以上,是Java面试题【如何实现静态代理(真实应用案例)】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧