加深理解AOP
代码实现
//抽象方法,增删改查
public interface UserService {
public void add();
public void delete();
public void update();
public void query();
}
//实现类
public class UserServiceImpl implements UserService {
public void add() {
System.out.println("增加了一个用户");
}
public void delete() {
System.out.println("删除了一个用户");
}
public void update() {
System.out.println("修改了一个用户");
}
public void query() {
System.out.println("查询了一个用户");
}
}
//代理类
package com.kuang.demo02;
public class UserServiceProxy implements UserService {
private UserServiceImpl userService;//使用组合将实现类丢进代理类
public void setUserService(UserServiceImpl userService) {
this.userService = userService;
}
public void add() {
log("add");
userService.add();
}
public void query() {
log("query");
userService.query();//调用了UserServiceImpl中的query
}
public void update() {
log("update");
userService.update();
}
public void delete() {
log("delete");
userService.delete();
}
//打印日志方法
public void log(String msg){
System.out.println("使用了"+msg+"方法");
}
}
//测试类
package com.kuang.demo02;
public class Client {
public static void main(String[] args) {
UserServiceImpl userService=new UserServiceImpl();//实现类
// userService.add();
UserServiceProxy proxy=new UserServiceProxy();
proxy.setUserService(userService);
proxy.delete();
proxy.add();
proxy.query();
proxy.update();
}
}