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

免费的外贸网站深圳品牌策划公司排名

免费的外贸网站,深圳品牌策划公司排名,重庆电子工程,wordpress随机文章小工具简介 假设你在网上购物时,快递员无法直接将包裹送到你手中(比如你不在家)。 代理模式的解决方案是: 快递员将包裹交给小区代收点(代理),代收点代替你控制和管理包裹的访问。 代收点可以添加额外…

简介
假设你在网上购物时,快递员无法直接将包裹送到你手中(比如你不在家)。
代理模式的解决方案是:
快递员将包裹交给小区代收点(代理),代收点代替你控制和管理包裹的访问。

代收点可以添加额外功能:比如验证你的身份、暂存包裹直到你有空取件。

你最终通过代收点间接拿到包裹,整个过程保护了你的隐私和便利性。

适用场景
远程代理:访问远程对象(如网络服务调用)。

虚拟代理:延迟创建开销大的对象(如图片懒加载)。

保护代理:控制权限(如接口访问权限验证)。

日志代理:记录方法调用信息(如监控系统)。

优点
隔离目标对象与客户端,增强安全性。

在不修改目标对象的前提下扩展功能。

缺点
增加代码复杂度(需额外代理类)。

可能降低系统响应速度(代理层处理逻辑)。

类图

在这里插入图片描述

代码

// 抽象主题:用户网购行为
interface Shopping {
void receivePackage(String packageName);
}// 真实主题:快递直接送货
class CourierDelivery implements Shopping {
@Override
public void receivePackage(String packageName) {
System.out.println("快递员已将包裹[" + packageName + "]送到用户手中!");
}
}// 代理类:代收点暂存包裹
class ParcelLockerProxy implements Shopping {
private Shopping courier;
private String pendingPackage;public ParcelLockerProxy() {
this.courier = new CourierDelivery();
}@Override
public void receivePackage(String packageName) {
// 代理控制访问:暂存包裹,延迟通知用户
System.out.println("代收点暂存包裹[" + packageName + "],等待用户取件");
this.pendingPackage = packageName;
notifyUser();
}private void notifyUser() {
// 模拟延迟通知
System.out.println("短信通知:您的包裹已到代收点,请及时领取!");
}
}// 客户端
public class ProxyDemo {
public static void main(String[] args) {
// 直接访问真实对象
Shopping courier = new CourierDelivery();
courier.receivePackage("手机");// 通过代理访问
Shopping proxy = new ParcelLockerProxy();
proxy.receivePackage("电脑");
}
}

实际场景
Spring 框架使用动态代理实现面向切面编程(AOP),例如事务管理,日志代理。

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;// 接口:用户服务
interface UserService {
void addUser(String name);
}// 真实主题:用户服务实现
class UserServiceImpl implements UserService {
@Override
public void addUser(String name) {
System.out.println("添加用户: " + name);
}
}// 动态代理:日志增强
class LoggingProxy implements InvocationHandler {
private Object target;public LoggingProxy(Object target) {
this.target = target;
}@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("调用方法前记录日志: " + method.getName());
Object result = method.invoke(target, args);
System.out.println("调用方法后记录日志: " + method.getName());
return result;
}
}// 客户端
public class DynamicProxyDemo {
public static void main(String[] args) {
UserService realService = new UserServiceImpl();
UserService proxy = (UserService) Proxy.newProxyInstance(
realService.getClass().getClassLoader(),
realService.getClass().getInterfaces(),
new LoggingProxy(realService)
);proxy.addUser("张三");
}
}
http://www.dtcms.com/a/607408.html

相关文章:

  • 为了做宣传网站而注册公司用wordpress写网页
  • 设备上哪个网站做外贸推广教做饮品的网站
  • 网站如何做口碑营销网站建设08
  • 合肥专业网站排名推广搜索引擎优化报告
  • 第一部分:一般性理論(注定的概率論)第三章 計數I:紙牌
  • 崇明建设小学网站包头市建设局网站
  • 手机网站做多宽的图片2023年房地产市场分析
  • 【SSM|第一篇】MyBatisPlus
  • 点评网站建设网站制作企业对比
  • 课程注册 网站开发西部数码网站管理控制面板
  • 【Dokcer】Dockerfile指令讲解
  • 西安做网站那家好怎么做电商赚钱
  • 做网站被捉wordpress 文章表
  • GPT-5.1已上线!亲测国内可用,保姆级使用教程
  • OpenAI GPT-5.1 系列发布:对话体验优化解析
  • 微网站app制作网站开发 视频播放器
  • 集团门户网站建设不足遇到灾难网站变灰怎么做
  • 一站式网站建设行业室内设计联盟邀请码免费
  • 养殖企业网站模板如何接推广的单子
  • 打造开放大众AI平台:基于d2550/d525主板的轻量化组网与设计实践(AI帮助设计的AI平台构架)
  • 零基础学JAVA--Day31(Collection类+List类)
  • 电子商务模拟实训报告企业网站建设wordpress耗时
  • sglang结构分析
  • 找网络公司做网站要注意这4个细节公司企业文化墙设计方案
  • discuz修改网站标题网页ui设计教程
  • 珠海网站建设珠海易推网wordpress 自动缩略图
  • 电子商务公司企业简介国外注册网站做百度seo
  • 网页制作网站制作步骤wordpress 简单 免费主题下载
  • wordpress建站欣赏设计官网和推广的公司
  • 网站建设类型有哪些用一个口罩做一把枪