java静态代理实现:
1.创建接口
package com.test.serv;
public interface UserManagerServ {
/**
* 接口
*/
public void addUser(String name,String pass);
public void editUser(int userId,String name,String pass);
public void deleUser(int userId);
public void findUser(String name);
}
2.创建实现类
package com.test.servImp;
import com.test.serv.UserManagerServ;
public class UserManagerServImp implements UserManagerServ {
/**
* 实现类
*/
public UserManagerServImp() {
// TODO Auto-generated constructor stub
}
public void addUser(String name, String pass) {
// TODO Auto-generated method stub
System.out.println("---增加用户操作!---"+"用户:"+name+" 密码:"+pass);
}
public void deleUser(int userId) {
// TODO Auto-generated method stub
System.out.println("---用户删除操作---");
}
public void editUser(int userId, String name, String pass) {
// TODO Auto-generated method stub
System.out.println("---用户修改操作---");
}
public void findUser(String name) {
// TODO Auto-generated method stub
System.out.println("---用户查询操作 ---");
}
}
3.创建 代理类
package com.test.servImp;
import com.test.serv.UserManagerServ;
public class UserManagerServImpProxy implements UserManagerServ {
/**
* 静态代理类
*/
private UserManagerServ userManagerServ;
//代理类构造方法
public UserManagerServImpProxy(UserManagerServ userManagerServ) {
this.userManagerServ =userManagerServ;
// TODO Auto-generated constructor stub
}
public void addUser(String name, String pass) {
// TODO Auto-generated method stub
checkUser();
this.userManagerServ.addUser(name, pass);
}
public void deleUser(int userId) {
// TODO Auto-generated method stub
checkUser();
this.userManagerServ.deleUser(userId);
}
public void editUser(int userId, String name, String pass) {
// TODO Auto-generated method stub
checkUser();
this.userManagerServ.editUser(userId, name, pass);
}
public void findUser(String name) {
// TODO Auto-generated method stub
checkUser();
this.userManagerServ.findUser(name);
}
public void checkUser(){
System.out.println("---检测用户名密码!---");
}
}
4.实现静态代理调用
package com.test.util;
import com.test.serv.UserManagerServ;
import com.test.servImp.UserManagerServImp;
import com.test.servImp.UserManagerServImpProxy;
public class WorkUser {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 正常调用
// UserManagerServ userServ= new UserManagerServImp();
//
// userServ.addUser("测试", "111");
/**
* 静态代理
*UserManagerServ 接口;
*UserManagerServImpProxy 代理类;
*UserManagerServImp() 实现类
*/
UserManagerServ user= new UserManagerServImpProxy(new UserManagerServImp());
user.addUser("wzp", "666");
}
}
注:静态代理中代理类要实现的接口和实现类需要实现的接口一样。