当前位置: 首页 > news >正文

【多线程】静态代理

当使用静态代理模式时,我们会有一个真实的对象(RealSubject),一个代理对象(ProxySubject),代理对象将请求转发给真实对象,并可以在请求前后执行额外的操作。

真实对象和代理对象要实现同一个接口

代理对象要代理真实角色

比如 找中介买房

真实对象:买家

代理对象:中介

package org.example;public class StaticProxy {public static void main(String[] args) {He he=new He(new You());he.HappyBuy();}
}interface Buy{void HappyBuy();
}class You implements Buy{@Overridepublic void HappyBuy() {System.out.println("xxx要买房了");}
}
//代理对象,帮助你买房
class He implements  Buy{private  Buy target;public He(Buy target){this.target=target;}@Overridepublic void HappyBuy() {before();this.target.HappyBuy();after();}public  void before(){System.out.println("带客户看房,签订买卖合同,支付房款");}public void after(){System.out.println("搬进新房");}
}

总结:

首先创建了一个接口(buy ),并且定义了一个方法(HappyBuy )

真实对象(You )调用 HappyBuy方法

class You implements Buy{@Overridepublic void HappyBuy() {System.out.println("xxx要买房了");}
}

代理对象(He )调用  HappyBuy方法

class He implements  Buy{private  Buy target;public He(Buy target){this.target=target;}@Overridepublic void HappyBuy() {before();this.target.HappyBuy();after();}public  void before(){System.out.println("带客户看房,签订买卖合同,支付房款");}public void after(){System.out.println("搬进新房");}
}

 创建主函数实现

将真实对象丢进代理对象,让代理对象去执行

  He he=new He(new You());
public class StaticProxy {public static void main(String[] args) {He he=new He(new You());he.HappyBuy();}
}

相关文章:

【多线程】静态代理

当使用静态代理模式时,我们会有一个真实的对象(RealSubject),一个代理对象(ProxySubject),代理对象将请求转发给真实对象,并可以在请求前后执行额外的操作。 真实对象和代理对象要实…...

线性代数 第二章 矩阵

一、概念 个数排成的m行n列的表格 二、运算法则 三、初等变换 (1)用非零常数k乘矩阵的某一行(列); (2)互换矩阵某两行(列)的位置; (3&#…...

vue实现自定义字体

1、字体资源查找 网址 https://eng.m.fontke.com/ 选择想要的字体之后下载 获取文件夹内的.ttf文件 2 、字体引入 在项目根目录下新建font文件夹,将ttf文件放在里面 3、相应的页面vue文件中引入 在style标签中加上 font-face { font-family: ‘ZCOOLXiaoWei’…...

Selenium安装WebDriver Chrome驱动(含 116/117/118/119/120/)

1、确认浏览器的版本 在浏览器的地址栏,输入chrome://version/,回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号(只看大版本)下载对应文件 2.2 116版本…...

springboot的安全机制

一.jwt Spring Boot是一个用于开发Java应用程序的开源框架,它提供了一种快速、简单和可扩展的方式来构建独立的、生产级别的应用程序。在最新的版本Spring Boot 2.5中,引入了对JWT(JSON Web Token)的支持。本文将介绍如何在Spring Boot 2.5中使用JWT,并提供一个简单的示例…...

学习c++的第四天

目录 运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 运算符优先级 运算符 算术运算符 算术运算符是 C 中用于执行基本算术操作的运算符。 加法运算符 ():将两个操作数相加。例如,A B 将得到 30,因为 …...

BIOS开发笔记 – 显示

UEFI启动流程跑完前三阶段,UEFI环境的准备基本完成,到BDS阶段的任务就是准备引导OS。在此之前还需要使一些必要的硬件工作起来,比如键盘设备,屏幕等,怎么让屏幕工作呢?简单的说就是执行其相关的UEFI驱动。要注意一下的是,这里所说的驱动并不是屏幕的驱动,而是GPU的驱动…...

数据库实验:SQL的数据视图

目录 视图概述视图的概念视图的作用 实验目的实验内容实验要求实验过程 视图概述 视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作 视图的概念 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一…...

k8s-调度约束

目录 工作机制 调度过程 指定调度节点 亲和性 键值运算关系 Pod亲和性与反亲和性 污点(Taint) 和 容忍(Tolerations) 维护操作 故障排除步骤 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了…...

C++设计模式_26_设计模式总结

本篇为C++设计模式的总结课,此篇再回到原帮助大家梳理一下。 文章目录 1. 一个目标2. 两种手段3. 八大原则4. 重构技法5. 从封装变化角度对模式分类6. C++对象模型7. 关注变化点和稳定点8. 什么时候不用模式9. 经验之谈10. 设计模式成长之路1. 一个目标 管理变化,提高复用!…...

解锁AI语言模型的秘密武器 - 提示工程

文章目录 一、LLM概念1.1 什么是LLMs1.2 LLMs类别1.3 如何构建LLM 二、提示工程简介2.1 基础提示2.2 使用提示词的必要性 三、 提示3.1 如何写好提示词3.1.1 使用分隔符3.1.2 结构化输出3.1.3 风格信息3.1.4 给定条件3.1.5 给出示例3.1.6 步骤分解3.1.7 不断迭代 3.2 提示工程3…...

qt手撕菜单栏

最近有个项目需要手写菜单栏。 就写了一个简单的程序,供大家参考! #include <QApplication> #include <QMainWindow> #include <QMenuBar> #include <QMenu> #include...

UE5——网络——RPC

RPC&#xff08;这个是官方文档的资料&#xff09; 要将一个函数声明为 RPC&#xff0c;您只需将 Server、Client 或 NetMulticast 关键字添加到 UFUNCTION 声明。 例如&#xff0c;若要将某个函数声明为一个要在服务器上调用、但需要在客户端上执行的 RPC&#xff0c;您可以…...

基于ASP.NET MVC + Bootstrap的仓库管理系统

基于ASP.NET MVC Bootstrap的仓库管理系统。源码亲测可用&#xff0c;含有简单的说明文档。 适合单仓库&#xff0c;基本的仓库入库管理&#xff0c;出库管理&#xff0c;盘点&#xff0c;报损&#xff0c;移库&#xff0c;库位等管理&#xff0c;有着可视化图表。 系统采用Bo…...

Jetson NX FFmpeg硬件编解码实现

最近在用Jetson Xavier NX板子做视频处理&#xff0c;但是CPU进行视频编解码&#xff0c;效率比较地下。 于是便考虑用硬解码来对视频进行处理。 通过jtop查看&#xff0c;发现板子是支持 NVENC硬件编解码的。 1、下载源码 因为需要对ffmpeg进行打补丁修改&#xff0c;因此需…...

5.2用队列实现栈(LC225-E)

算法&#xff1a; 其实这道题不用像上一道题一样&#xff0c;用两个队列实现栈。 由于队列的数据结构特性。用一个队列就可实现栈。 难点还是在出队的时候&#xff1a; 比如队列[1,2,3]&#xff0c;要模拟一个栈入栈就是直接append&#xff08;其实就是C中的push&#xff0…...

项目上线前发现严重Bug怎么办?

今天分享一个面试问题&#xff0c;现在有一个面试场景&#xff1a; 项目计划明天发布&#xff0c;但是在今天你作为测试人员发现了一个严重的bug&#xff0c;市场相关人员又在催发布的事情&#xff0c;这个时候你应该怎么办&#xff1f; 这是测试工程师不管是在面试&#xff0…...

【WPF系列】- Application详解

【WPF系列】- Application详解 文章目录 【WPF系列】- Application详解一、Application简介Application 类具体有以下功能: 二、初始App.xaml二、自定义Main方法启动WPF应用程序第一种&#xff1a;启动应用程序的代码第二种&#xff1a;启动应用程序的代码第三种&#xff1a;启…...

常见的内置方法:__call__,__getitem__,__iter__,__next__

1.__call__方法 在创建好一个实例后&#xff0c;直接调用一个实例会报错。但使用__call__后&#xff0c;可以让这个实例可以像方法一样被调用&#xff08;就是一个函数后面加个括号的函数调用形式&#xff09; class Person:passp1 Person() p1() # 实例这样无法直接被调…...

python用cv2画图(line, rectangle, text等)

Python做图像图形研究的时候&#xff0c;通常需要画很多辅助几何形状&#xff08;比如bounding box等&#xff09;。基于opencv的几何图形绘制具有易用性&#xff0c;而且天然能和numpy数组交互。 本文总结了几种常用的cv2画几何图形的方法&#xff0c;当一个简易的手册使用&a…...

手机号与QQ号关联查询工具:技术原理与实战指南

手机号与QQ号关联查询工具&#xff1a;技术原理与实战指南 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 破解数字身份关联难题&#xff1a;phone2qq工具的价值定位 在多账号管理场景中&#xff0c;用户经常面临数字身份关联断层问…...

互联网大厂Java求职者面试经历

Java求职面试&#xff1a;严肃面试官与搞笑水货程序员的碰撞 在一次互联网大厂的面试中&#xff0c;面试官坐在桌子后面&#xff0c;脸上挂着严肃的表情&#xff0c;而面试者则是一个搞笑的程序员&#xff0c;名叫谢飞机。 第一轮提问 面试官&#xff1a;请简述一下Java的核心特…...

荣耀XD21路由器IPTV设置指南:不用VLAN交换机实现单线复用

荣耀XD21路由器单线复用实战&#xff1a;无需VLAN交换机实现IPTV与网络并行传输 客厅弱电箱仅预留单根网线却需要同时承载IPTV和无线网络信号——这是许多家庭网络改造中遇到的典型难题。传统方案往往依赖价格不菲的VLAN交换机实现单线复用&#xff0c;但通过荣耀XD21路由器的隐…...

贝叶斯分位数回归:超越均值的数据分析方法

贝叶斯分位数回归&#xff1a;超越均值的数据分析方法 【免费下载链接】pymc Python 中的贝叶斯建模和概率编程。 项目地址: https://gitcode.com/GitHub_Trending/py/pymc 问题-方案-验证-应用四象限框架 问题&#xff1a;均值回归的业务痛点 在数据分析实践中&#…...

Acode:重新定义Android移动代码编辑体验

Acode&#xff1a;重新定义Android移动代码编辑体验 【免费下载链接】Acode Acode - powerful text/code editor for android 项目地址: https://gitcode.com/gh_mirrors/ac/Acode 在移动开发日益普及的今天&#xff0c;拥有一款高效的移动代码编辑器成为开发者的迫切需…...

别再直接升glibc 2.25了!CentOS7下从2.17平滑升级到2.31的保姆级排雷手册

CentOS7下glibc升级避坑实战&#xff1a;从2.17到2.31的安全跃迁指南 当你在CentOS7服务器上部署最新中间件时&#xff0c;那个熟悉的报错信息又出现了——"GLIBC_2.25 not found"。作为运维老兵&#xff0c;我太了解这种被glibc版本束缚的无力感。但别急着执行yum u…...

2024年TVBOX源接口终极整理:手把手教你如何筛选稳定高速线路

2024年TVBOX源接口高效筛选与优化指南 在流媒体内容消费日益普及的今天&#xff0c;TVBOX作为一款开源播放器解决方案&#xff0c;凭借其强大的扩展性和丰富的资源获取能力&#xff0c;赢得了众多技术爱好者的青睐。然而&#xff0c;面对网络上浩如烟海的源接口资源&#xff0c…...

跨平台文件同步:OpenClaw调用GLM-4.7-Flash智能归类方案

跨平台文件同步&#xff1a;OpenClaw调用GLM-4.7-Flash智能归类方案 1. 为什么需要智能文件同步 作为一个长期在多台设备间切换工作的开发者&#xff0c;我深受文件管理混乱的困扰。Mac上的设计稿、Windows里的会议记录、手机拍摄的参考图&#xff0c;最终都会堆积在某个临时…...

Windows系统管理员必备:LastActivityView详细使用指南(含数据导出技巧)

Windows系统管理员必备&#xff1a;LastActivityView深度实战手册 作为Windows系统管理员&#xff0c;我们常常需要追踪用户活动、排查异常行为或进行合规审计。市面上虽然有不少商业监控工具&#xff0c;但NirSoft出品的LastActivityView以其轻量高效、数据全面且完全免费的特…...

AMC1100隔离放大器实战:如何用DUB封装搞定三相电流电压测量?

AMC1100隔离放大器实战&#xff1a;DUB封装在三相测量中的高阶应用 工业电力监测领域对精度与安全性的双重苛求&#xff0c;催生了隔离放大器技术的持续迭代。当我在某变电站监测系统升级项目中首次接触AMC1100时&#xff0c;这款采用DUB封装的全差分隔离放大器以其独特的抗磁场…...