`
jarorwar
  • 浏览: 87721 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

代理模式

    博客分类:
  • Java
阅读更多

package mxr.proxy;

public interface UserManager {

 public void addUser(String username,String password);
}

 

 

package mxr.proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class UserManagerHandler implements InvocationHandler {

 private Object orignialObj;
 public UserManagerHandler(Object obj){
  this.orignialObj=obj;
 }
 public Object invoke(Object proxy, Method method, Object[] args)
   throws Throwable {
  Object result;
  System.out.println("代理之前进行了日志记录");
   result = method.invoke(this.orignialObj ,args);
   System.out.println("代理之前进行了日志记录");
  return result;
 }

}

 

package mxr.proxy;

public class UserManagerImpl implements UserManager {

 public void addUser(String username, String password) {
 
  System.out.println("添加用户,用户名:"+username);
 }

}

 

package mxr.proxy;

import java.lang.reflect.Proxy;

public class Client {

 public static void main(String[] args) {
  UserManager um=new UserManagerImpl();
  UserManagerHandler umh=new UserManagerHandler(um);
  UserManager proxy=(UserManager) Proxy.newProxyInstance(um.getClass().getClassLoader(),um.getClass().getInterfaces(),umh);
  proxy.addUser("|", "aa");  
 }

}

 

强烈要求javaeye换一个富文本编辑器。这个太难用了。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics