代理模式
来源:互联网 发布:阿里云的网站空间 编辑:程序博客网 时间:2024/06/11 10:50
动态代理举例
/*** * 用户控制接口 * @author Administrator * */public interface UserManager { public void addUser(String userId,String userName); public void modifyUser(String userId,String userName); public void delUser(String userId); public String findUser(String userId);}
/**** * 用户管理真正的实现类 * @author Administrator * */public class UserManagerImpl implements UserManager { /***** * 添加用户 */ public void addUser(String userId, String userName) { System.out.println("正在添加用户,用户为:"+userId+userName+"……"); } /***** * 删除用户 */ public void delUser(String userId) { System.out.println("delUser,userId="+userId); } /*** * 查找用户 */ public String findUser(String userId) { Log.d("user--","findUser,userId="+userId); System.out.println("findUser,userId="+userId); return userId; } public void modifyUser(String userId, String userName) { System.out.println("modifyUser,userId="+userId); }}
//产生一个对象的代理public class LogHandler implements InvocationHandler { //被代理的类 private Object targetObject; public Object newProxyInstance(Object targetObject) { this.targetObject = targetObject; return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(), targetObject.getClass().getInterfaces(), this); }//完成对真正方法的调用 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object ret = null; try { Log.d("user--","正在进行操作前的准备工作……"); //调用目标方法 ret = method.invoke(targetObject, args); Log.d("user--","操作成功,正在进行确认处理……"); } catch (Exception e) { e.printStackTrace(); System.out.println("error-->>" + method.getName()); throw e; } return ret; }}
public class UserManagerActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //目标对象 LogHandler logHandler = new LogHandler(); //生成代理 UserManager userManager = (UserManager)logHandler.newProxyInstance(new UserManagerImpl()); userManager.findUser("0001"); }}
参考1
0 0
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- Android 代码检查工具SonarQube
- mysql乐观锁总结和实践(含demo例子)
- 从入门到研究,人工智能领域最值得一读的20份资料
- 关于 mysql 中 find_in_set 与 like 查询的一些思考
- HTML小游戏—打灰机
- 代理模式
- Sql 求两列去重后的总数量
- meteor安装太慢问题
- ASP.NET MVC WebAPI请求
- heritrix1.14.4配置-没有add和change按钮的问题
- opencv保存intel realsense SR300获得的图像
- JAVA 动态代理
- glPushMatrix()和glPopmatirx()
- 快速打开chorme书签