静态代理再理解
小于 1 分钟Spring全家桶Spring入门
接口(抽象角色)
package com.kuang.demo02;
/**
* @author Administrator
*/
public interface UserService {
public void add();
public void delete();
public void update();
public void query();
}
真实角色
package com.kuang.demo02;
/**
* @author Administrator
* 真实对象
*/
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("查询一个用户!");
}
/**
* 1、改动原有的业务代码,在公司中是大忌!
* 2、
*/
}
代理角色
package com.kuang.demo02;
/**
* @author Administrator
*/
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 delete() {
log("delete");
userService.delete();
}
public void update() {
log("update");
userService.update();
}
public void query() {
log("query");
userService.query();
}
/**
* 日志方法
*/
public void log(String msg){
System.out.println("[debug] 使用了" + msg + "方法!");
}
}
客户端访问代理角色
package com.kuang.demo02;
/**
* @author Administrator
*/
public class Client {
public static void main(String[] args) {
UserServiceImpl userService = new UserServiceImpl();
UserServiceProxy proxy = new UserServiceProxy();
proxy.setUserService(userService);
proxy.update();
}
}
结果
[debug] 使用了update方法!
修改了一个用户!
聊聊AOP
