代理模式:在不改变原有的代码的基础之上对功能进行加强。
1.package cn.zzsxt.demo;
public interface UserDao {
public void add();
}
2.package cn.zzsxt.demo;
public class UserDaoImpl implements UserDao {
public void add() {
//System.out.println("开启事务!");
System.out.println("执行了用户的新增");
//System.out.println("提交事务!");
}
}
3.package cn.zzsxt.demo;
/**
* 代理模式:在不改变原有的代码的基础之上对功能进行加强。
* @author Administrator
*
*/
public class UserDaoProxy implements UserDao{
private UserDao target;//被代理目标
public UserDaoProxy(UserDao target){
this.target=target;
}
@Override
public void add() {
System.out.println("开启事务!");
target.add();//调用被代理目标中的方法
System.out.println("提交事务!");
}
}
4.package cn.zzsxt.demo;
public class Test {
public static void main(String[] args){
// UserDao userDao=new UserDaoImpl();
// userDao.add();
UserDao userDao=new UserDaoProxy(new UserDaoImpl());
userDao.add();
}
}