希夷之家

导航

Java动态代理

 动态代理类实现InvocationHandler接口,利用反射机制,动态地生成代理对象及其调用方法。提高了代码的可扩展性和可维护性,更加符合OCP原则。
继续使用《Java静态代理》中的实例。
UserManager.java

 

/**
 * 定义UserManager接口,包含对用户增删改查四个抽象方法
 * 
@author Administrator
 *
 
*/

public interface UserManager {
    
    
public void addUser(String username,String password);
    
    
public void deleteUser(int id);
    
    
public void modifyUser(int id,String username,String password);
    
    
public String findUserById(int id);
}
UserManagerImpl.java
SecurityHandler.java
---实现InvocationHandler接口。

public class Client {

    
public static void main(String[] args) {
        
/*UserManager userManager = new UserManagerImpl();
        userManager.addUser("zhangsan", "111");
*/

        UserManager userManager 
= (UserManager)new SecurityHandler().newProxy(
                
new UserManagerImpl());
        userManager.addUser(
"zhangsan""111");
    }

}
运行结果:
SecurityHandler.checkSecurity()...
UserManagerImpl.addUser()...

posted on 2009-10-15 11:10  希夷之家  阅读(247)  评论(0)    收藏  举报