代理一般用于给多个的类实现相同的方法,如记录日志、权限控制等等。普通代理的实现步骤如下:

一、定义接口

package com.casic.test.proxy;

public interface UserService {

/**

* 添加用户

*/

public void addUser();

/**

* 删除用户

*/

public void deleteUser();

/**

* 查询用户

*/

public void queryUsers();

}

二、接口实现

public class UserServiceImpl implements UserService {

public void addUser() {

System.out.println("添加 一个用户 ");

}

public void deleteUser() {

System.out.println("删除一个用户 ");

}

public void queryUsers() {

System.out.println("查询所有用户 ");

}

}

三、代理同样实现接口,并拥有一个接受接口对象的构造参数

public class UserServiceProxy implements UserService{

private UserService userService;

/**

* @param userService UserService 接口

*/

public UserServiceProxy(UserService userService) {

this.userService = userService;

}

public void addUser() {

System.out.println("------开始添加------");

userService.addUser();

System.out.println("------添加完成------");

}

public void deleteUser() {

System.out.println("------开始删除------");

userService.deleteUser();

System.out.println("------删除完成------");

}

public void queryUsers() {

System.out.println("------开始查询------");

userService.queryUsers();

System.out.println("------查询完成------");

}

}

四、代理调用

1.声明一个实现类对象,用接口形式声明

2.将声明的对象传入代理类,获得代理类的实现对象

package com.casic.test.proxy_1;

import org.junit.Test;

public class UserServiceTest {

@Test

public void test() {

UserService userService = new UserServiceImpl();

userService = new UserServiceProxy(userService);

userService.addUser();

}

}

转载于:https://www.cnblogs.com/oftenlin/archive/2013/05/24/3096638.html

Java 设计模式之普通代理相关推荐

  1. Java设计模式-----Cglib动态代理(Cglib Proxy)

    接上文:4.2Java设计模式-----JDK动态代理(Dynamic Proxy) Cglib动态代理 百度百科:Cglib是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java ...

  2. Java设计模式(十三):代理设计模式

    代理模式可以分为以下四类 远程代理(Remote Proxy):控制对远程对象(不同地址空间)的访问,它负责将请求及其参数进行编码,并向不同地址空间中的对象发送已经编码的请求. 虚拟代理(Virtua ...

  3. 23种java设计模式详解-代理模式

    什么是代理模式: Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问.所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类, ...

  4. Java设计模式之静态代理和动态代理(简单例子)

    1.代理模式 一个生活中的例子:明星都有一个自己的经纪人,这个经纪人就是他们的代理人. 当我们需要找明星表演时,不能直接找到该明星,只能是找明星的代理人.比如张学友在没有出名之前,我们可以直接找他唱歌 ...

  5. Java设计模式之虚拟代理模式

    描述: 虚拟代理模式(Virtual Proxy)是一种节省内存的技术,它建议创建那些占用大量内存或处理复杂的对象时,把创建这类对象推迟到使用它的时候.在特定的应用中,不同部分的功能由不同的对象组成, ...

  6. 【java设计模式】之 代理(Proxy)模式

    代理模式的核心作用就是通过代理,控制对对象的访问.这跟实际中是一样的,比如说明星都有经纪人,这就是一个代理,比如有人要找某明星拍戏,那么首先处理这事的是他的经纪人,虽然拍戏需要自己拍,但是拍戏前后的一 ...

  7. JAVA 设计模式之《代理模式》

    文章目录 一.代理模式介绍 二.静态代理 三.jdk 动态代理 四.cglib 动态代理 五.总结 一.代理模式介绍 代理模式,非常容易理解,一眼看过去大家都懂,字面意思,如果不懂稍微琢磨琢磨就懂了, ...

  8. 【java设计模式】-00目录

    开篇 [java设计模式]-01设计模式简介 创建型模式: [java设计模式]-02工厂模式(Factory Pattern) [java设计模式]-03抽象工厂模式(Abstract Factor ...

  9. 自己写一个java.lang.reflect.Proxy代理的实现

    前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Pr ...

最新文章

  1. 又居家办公了,要签合同怎么办?
  2. mongodb:linux基本操作
  3. 冒泡排序的PHP实现 Bubble Sort
  4. 【Hibernate步步为营】--多对多映射详解
  5. 20/100. House Robber
  6. 开发实战细节之——关于整型转换为字符串类型的性能与实现分析
  7. php增加mysql用户_mysql 增加用户
  8. openssh-server (= 1:6.6p1-2ubuntu1) but it is not going to be installed
  9. 网站左侧悬浮框随着滚动条滚动代码
  10. VIM和sed 替换字符串方法
  11. Hive开窗函数总结
  12. 微信小程序商城项目实战(第三篇:商品列表)
  13. 解决win7旗舰版无法卸载IE11,恢复系统原内置IE版本浏览器(本人原内置IE8)
  14. python之基础语法常见错误提示总结
  15. 梆梆加固函数抽取执行流程
  16. 【Vue知识点】——Vue2和Vue3的数据劫持
  17. python 静态网站生成_最全的静态网站生成器(开源项目)
  18. 堆排序-以小根堆为例
  19. 考PMP必须参加培训吗?自己可以考吗?
  20. esp32 cam 配网 实现视频传输

热门文章

  1. 2021年商业的几点变化
  2. 上班能赚到第一桶金吗?
  3. 想创业赚钱 就必须了解赚钱的真相
  4. 都知道李嘉诚先生是一个有钱人
  5. Facts have proved that this is more popular than his article
  6. 利用MFC向导生成单文档应用程序框架
  7. mac下打开多个相同应用程序
  8. Navicat 12 安装
  9. 谷歌浏览器怎么查找和改变编码格式
  10. thunderbrid设置中文