Java 设计模式之普通代理
代理一般用于给多个的类实现相同的方法,如记录日志、权限控制等等。普通代理的实现步骤如下:
一、定义接口
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 设计模式之普通代理相关推荐
- Java设计模式-----Cglib动态代理(Cglib Proxy)
接上文:4.2Java设计模式-----JDK动态代理(Dynamic Proxy) Cglib动态代理 百度百科:Cglib是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java ...
- Java设计模式(十三):代理设计模式
代理模式可以分为以下四类 远程代理(Remote Proxy):控制对远程对象(不同地址空间)的访问,它负责将请求及其参数进行编码,并向不同地址空间中的对象发送已经编码的请求. 虚拟代理(Virtua ...
- 23种java设计模式详解-代理模式
什么是代理模式: Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问.所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类, ...
- Java设计模式之静态代理和动态代理(简单例子)
1.代理模式 一个生活中的例子:明星都有一个自己的经纪人,这个经纪人就是他们的代理人. 当我们需要找明星表演时,不能直接找到该明星,只能是找明星的代理人.比如张学友在没有出名之前,我们可以直接找他唱歌 ...
- Java设计模式之虚拟代理模式
描述: 虚拟代理模式(Virtual Proxy)是一种节省内存的技术,它建议创建那些占用大量内存或处理复杂的对象时,把创建这类对象推迟到使用它的时候.在特定的应用中,不同部分的功能由不同的对象组成, ...
- 【java设计模式】之 代理(Proxy)模式
代理模式的核心作用就是通过代理,控制对对象的访问.这跟实际中是一样的,比如说明星都有经纪人,这就是一个代理,比如有人要找某明星拍戏,那么首先处理这事的是他的经纪人,虽然拍戏需要自己拍,但是拍戏前后的一 ...
- JAVA 设计模式之《代理模式》
文章目录 一.代理模式介绍 二.静态代理 三.jdk 动态代理 四.cglib 动态代理 五.总结 一.代理模式介绍 代理模式,非常容易理解,一眼看过去大家都懂,字面意思,如果不懂稍微琢磨琢磨就懂了, ...
- 【java设计模式】-00目录
开篇 [java设计模式]-01设计模式简介 创建型模式: [java设计模式]-02工厂模式(Factory Pattern) [java设计模式]-03抽象工厂模式(Abstract Factor ...
- 自己写一个java.lang.reflect.Proxy代理的实现
前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Pr ...
最新文章
- 又居家办公了,要签合同怎么办?
- mongodb:linux基本操作
- 冒泡排序的PHP实现 Bubble Sort
- 【Hibernate步步为营】--多对多映射详解
- 20/100. House Robber
- 开发实战细节之——关于整型转换为字符串类型的性能与实现分析
- php增加mysql用户_mysql 增加用户
- openssh-server (= 1:6.6p1-2ubuntu1) but it is not going to be installed
- 网站左侧悬浮框随着滚动条滚动代码
- VIM和sed 替换字符串方法
- Hive开窗函数总结
- 微信小程序商城项目实战(第三篇:商品列表)
- 解决win7旗舰版无法卸载IE11,恢复系统原内置IE版本浏览器(本人原内置IE8)
- python之基础语法常见错误提示总结
- 梆梆加固函数抽取执行流程
- 【Vue知识点】——Vue2和Vue3的数据劫持
- python 静态网站生成_最全的静态网站生成器(开源项目)
- 堆排序-以小根堆为例
- 考PMP必须参加培训吗?自己可以考吗?
- esp32 cam 配网 实现视频传输