package com.example.daili;
public interface UserService
{
public void say();
public void hello();
}
package com.example.daili;
public class UserServiceBean implements UserService
{
private String name;
public UserServiceBean()
{
};
public UserServiceBean(
String name )
{
this.name = name;
}
@Override
public void say()
{
System.out.println( "恭喜来到此地!!" );
}
@Override
public void hello()
{
System.out.println( "欢迎您!" );
}
public String getName()
{
return name;
}
}
package com.example.daili;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/**
* 代理工厂
* @author Administrator
*
*/
public class UserServiceProxy implements InvocationHandler
{
private Object tarObject;
public Object createProxyIntance(
Object targetObject )
{
this.tarObject = targetObject;
return Proxy.newProxyInstance( this.tarObject.getClass().getClassLoader() , this.tarObject.getClass().getInterfaces() , this );
}
@Override
public Object invoke(
Object proxy ,
Method method ,
Object[] args ) throws Throwable
{
// TODO Auto-generated method stub
UserServiceBean bean = (UserServiceBean)this.tarObject;
Object object = null;
if( bean.getName() != null )
{
if( bean.getName().equals( "wuq" ) )
{
object = method.invoke( this.tarObject , args );
}
else
{
System.out.println( "您沒有操作权限!!!" );
}
}
else
{
System.out.println( "您没有操作权限!!!!!" );
}
return object;
}
}
package com.example.daili;
/**
* 动态代理模式 简单实例
* @author Administrator
*
*/
public class TestActivity
{
public static void main(
String[] args )
{
UserServiceProxy proxy = new UserServiceProxy();
UserServiceBean bean = new UserServiceBean( "wuq" );
UserService service = (UserService)proxy.createProxyIntance( bean );
service.hello();
service.say();
}
}
测试结果:
欢迎您!
恭喜来到此地!!