java 23种常用设计模式之代理模式(Proxy)

23种设计模式-代理(Proxy)设计模式 软考中级-软件设计师 代理设计模式 阅读详情

病怏怏地睡不着,还是继续码字吧!

代理模式,作用如其名,就是做代理的。就比如你开了一个格子铺,有好多格子,可以买不同的商品,客户要买什么不用直接找厂家,直接在你这就买得到,这个过程你就是这些商品的代理Proxy,代表厂家把商品卖给需要的顾客。这么一看,这不就是黄牛吗?是的,和黄牛差不多,但是绝对有他存在的必要。一个顾客一般不止需要一类商品,但是一个厂家一般都是产一类产品的,就比如生产文具的一般不会在一个厂里也生产化妆品,但是对顾客来说,我需要文具,我也需要化妆品,爱学习也爱化妆呀。那黄牛就有机会了,顾客要什么,给钱就行了,我帮你搞定厂家。黄牛代理不同厂家的商品,顾客直接找黄牛买就行了。

下面我们来看一下代码怎么实现:

厂家:

package com.freedom.proxy;

public interface Factory {
	
	public void sell();

}
顾客:

package com.freedom.proxy;

public class Customer implements Factory {

	@Override
	public void sell() {
		System.out.println("Customers go shopping,Factory sells. ");

	}

}
黄牛代理:

package com.freedom.proxy;

public class Proxy implements  Factory {

	private Customer customer;
	public Proxy(){
		super();
		this.customer = new Customer();
	}
	
	@Override
	public void sell() {

		Before();
		customer.sell();
		After();
		
	}
	
	private void Before(){
		System.out.println("Before proxy");
	}
	
	private void After(){
		System.out.println("After proxy");
	}

}
test:

package com.freedom.proxy;

import org.junit.Test;

public class TestProxy {

	@Test
	public void test() {

		Factory factory = new Proxy();
		factory.sell();
	
	}

}
/*
运行结果:
Before prox<pre name="code" class="java">Customers go shopping,Factory sells .
After proxy
*/

 

小结:如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:

1、修改原有的方法来适应。这样违反了“对扩展开放,对修改关闭”的原则。

2、就是采用一个代理类调用原有的方法,且对产生的结果进行控制。这种方法就是代理模式。

使用代理模式,可以将功能划分的更加清晰,有助于后期维护!


源码下载:http://download.youkuaiyun.com/detail/github_22022001/8314195


115.工业相机海康SDK开发指南(阅读) 包含初始化SDK和反初始化SDK接口。(由于看不到函数内部的具体实现,因此以下的解释仅代表个人的理解) 阅读详情

相关推荐

告别纯代码:用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件

本文介绍如何利用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件,解决传统集成方式中的代码臃肿和维护困难问题。通过.NET控件封装核心功能,实现LabVIEW与VisionMaster的高效对接,显著提升工业自动化开发效率。

weixin_33744854的博客 505

java中的Proxy模式(一)

代理(Proxy)模式,顾名思义就是对象之间不直接发生联系,而是通过中间的代理人进行沟通。这种关系在现在的娱乐圈中普遍存在:明星通常都有经纪人来代理自己的演出事宜,而不是直接去联系演出商。下面就通过这个实际中的例子来说明代理模式。首先画出关系类图:可以看出,这里并没有经纪人(Broke)类,而是新增了一个经纪人操作类 (BrokeHandler),这是因为通过Proxy.newProxyInsta

维仔的专栏 459

Applied Energy期刊小白论文投稿模板-流程经验分享

Applied Energy期刊小白论文投稿模板-流程经验分享,Elsevier期刊(爱思唯尔)投稿流程

zzu_Flyer的博客 4万+

java设计模式学习-代理模式

代理模式即Proxy Pattern,23种java常用设计模式之一。代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。 代理模式分类: 1、远程代理(Remote Proxy)——为不同地理的对象提供局域网代表对象。(类似于客户端和服务器端) 2、虚拟代理(Virtual Proxy)——根据需要将资源消耗很大的对象进行延迟,真正需要的时候才进行创建。(网页中图片的加载,先用一张虚

渴望飞翔的猪 479

12、无人机系统的建模与仿真

本文深入探讨了无人机系统的建模与仿真技术,涵盖其发展需求、历史演变、动力学建模方法、常用参考框架与状态变量表示,并分析了在控制系统设计、操作员培训和子系统测试中的关键应用。文章还介绍了不同类型无人机(固定翼、旋翼、混合翼)在建模与仿真中的差异,提出了多学科融合、高精度实时仿真及VR/AR技术等未来发展趋势,并给出了实际建模与仿真的标准操作流程,为无人机系统的设计与优化提供了全面的技术支持与展望。

websocket5live的博客 196

28-手把手教你手写CPU-Verilog - 乘法器设计:Booth算法与Wallace树乘法器

文章摘要: 本文详细介绍了两种高效乘法器设计方法:Booth算法和Wallace树乘法器。Booth算法通过检测乘数连续1/0减少部分积,适合有符号数运算;Wallace树采用树形结构压缩部分积,显著降低延迟。文章包含算法原理、具体示例、Verilog实现代码(4位乘法器)及性能对比表,指出Booth适用于通用处理器,Wallace树更适合高性能DSP/GPU。最后强调实际设计中需根据速度、面积和功耗需求选择合适方案。

2301_79143213的博客 206

23种设计模式之代理模式(Proxy Pattern)

本篇文章将23种设计模式中的代理模式,此篇文章为一天学习一个设计模式系列文章,后面会分享其他模式知识。

小威的博客 2万+

一文搞懂数据标注

数据标注即通过分类、画框、标注、注释等,对图片、语音、文本等数据进行处理,标记对象的特征,以作为机器学习基础素材的过程。简言之,就是需要给数据做好标注,这样机器就能知道学习哪些内容。

女王の专属领地 9943

23种设计模式——代理模式(Proxy Pattern)详解

本文介绍了23种设计模式里面超好用的模式——代理模式(Proxy Pattern)!!!

Meteors.的博客 1626

吊打BEVFormer!GaussianBeV实战:用3D高斯开启BEV分割新范式

GaussianBeV是一种基于3D高斯建模的BEV分割新方法,在自动驾驶感知任务中实现了SOTA性能。其核心创新在于将场景元素表示为3D高斯分布,通过均值、协方差和权重精确描述物体位置、形状和置信度,相比传统BEV方法具有更强的空间建模能力。文章详细介绍了GaussianBeV的原理、环境配置、训练推理流程及其在自动驾驶和城市3D重建中的应用,并讨论了优化方向和未来发展趋势。该方法在nuScenes等数据集上表现出色,为BEV分割任务提供了新的解决方案。

m0_71589036的博客 106

Linux ARM平台开发系列讲解(网络篇)1.3 MDIO总线设备device和设备driver匹配

在设备和驱动都载入内核后,设备和驱动是如何匹配起来的呢?其实他们就是通过的唯一标识phyID进行匹配phy_dev和phy_drv是通过phy_bus_match函数进行匹配,匹配成功后会建立链表链接,具体流程如下图: 返回总目录......

DSMGUOGUO的博客 1098

Java23种设计模式之代理模式Proxy

带你快速简单了解设计模式中代理模式,如有不足,欢迎补充,此文为个人的一个学习笔记

weixin_54361971的博客 884

嵌入式AI实战:基于RK3588部署YOLOv11并集成OpenCV实现实时推理(全流程详解)

本文详细介绍了在RK3588芯片上部署YOLOv11目标检测模型的全流程,包括环境搭建、模型转换和实时推理实现。主要内容为:1)通过YOLOv11官方工具将PyTorch模型转为ONNX格式;2)使用RKNN Toolkit2将ONNX模型转换为适配RK3588的RKNN格式;3)在RK3588上结合OpenCV实现实时视频推理功能。教程提供了完整的代码示例和详细步骤说明,帮助开发者快速在边缘设备上部署目标检测模型,实现AI视觉应用的落地。

LXY_LOVE36的博客 213

Java 中的 23 种设计模式详解

项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

微笑听雨 7万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

23种设计模式——代理模式

文章目录23种设计模式——代理模式1、什么是代理模式2、代理模式的优缺点3、代理模式的结构4、代理模式的分类4.1、静态代理4.2、动态代理4.2.1、InvocationHandler接口4.2.2、Proxy类4.2.3、动态代理实现5、代理模式的应用场景 23种设计模式——代理模式 1、什么是代理模式 背景: 一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又比如找女朋

万里顾一程的博客 2813

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Java中23种面试常考的设计模式之代理模式(Proxy)---结构型模式】

【Java中23种面试常考的设计模式之代理模式(Proxy)---结构型模式】若代理类在程序运行前就已经存在,那么这种代理方式被成为静态代理,这种情况下的代理类通常都是我们在Java代码中定义的。通常情况下, 静态代理中的代理类和目标类会实现同一接口或是派生自相同的父类。代理类在程序运行时创建的代理方式被成为动态代理。动态代理的代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。

Coder_ljw的博客 471

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java设计模式-----代理模式(Proxy Pattern)

1.什么是代理模式? 代理模式(Proxy Pattern),是23种设计模式之一,它关心的主要是过程,而不是结果。代理模式主要提供了对目标对象的间接访问方式,即通过代理对象来访问目标对象。 2.为什么要使用代理模式? ①通过代理对象来访问目标对象,便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求; ②同时代理模式...

扛麻袋的少年的博客 1401

Java23种设计模式之结构型模式「代理模式」

代理模式 - Proxy Pattern 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 意图: 为其他对象提供一种代理以控制对这个对象的访问。 目前有一个现有的业务逻辑 并 有实现逻辑 public interface Product { void createProduct(); } public class ProductLevel implements Prod

三分之二给你 的专栏 279

Java23种设计模式之代理模式

java面向对象23种设计模式之代理模式

m0_64332518的博客 364

Java23种设计模式 代理模式【Proxy Pattern】

本文章转载大佬CBF4LIFE的文章 博客地址:https://www.cnblogs.com/cbf4life/ 什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道 被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被 代理的人能干活呀。  比如西门庆找潘金莲,那潘金莲不好意思答复呀,咋办,找那个王婆做代理,表现在程...

宇智波带土 227

Java 之 23 种设计模式解析——8、代理模式(Proxy)

8、代理模式(Proxy) 其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。先来看看关系图:   根据上文的...

毕富国的博客 673

23种设计模式--代理模式

有一句话这么说“有事秘书干,没事干秘书”。其实生活中秘书就是一种典型的代理。说白了可以这么理解,客户不是因为秘书才谈生意的,而是因为老板。但是老板生意很多,所以用一个秘书来代理事务。所以在百度百科说了这么一句对代理模式的理解:在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。中介说明了一件事就是代理类本身没有什么实现功能,仅仅是多了一层包装

飞鱼 1538

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

什么是代理模式: Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。 代理模式的原型: 代理模式的角色和职责: subject(抽象主题角色):真...

撸起袖子加油干 551

Java 设计模式之代理模式

代理模式,尤其动态代理,在我们的开发中及第三方库中应用广泛,本讲通过示例代码,来讨论静、动态代理原理及其实现方式等。

牛角尖 782

GOF23设计模式之代理模式-Proxy

详解介绍代理模式及Spring AOP 代理模式-Proxy概述比较静态代理动态代理JDk动态代理CGlib动态代理Jdk动态代理与cglib动态代理对比:Spring AOP使用详解实现原理代理方式Spring AOP 如何实现链式调用的? 代理模式-Proxy 概述 定义:为其他对象提供一种代理,已控制对这个对象的访问。 代理对象在客户端和目标对象之前起到中介的作用 类型:结构型设计模式 适用场景: 保护目标对象 增强目标对象 优点: 代理模式能将代理对象与真实调用的目标对象分

zhengyong14350的博客 458

java23中设计模式--代理模式Proxy

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。举例说明,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。代理对象与目标对象.代理对象是对目标对象的扩展,并会调用目标对象。

ALLEN'Blog 626
上一篇: 浅谈java中的this和super
下一篇: J2EE中各种对象让人眼花缭乱的专业缩略词
freedom1993
博客等级 码龄12年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值