首页 > 其他分享 >10.19

10.19

时间:2024-11-20 10:08:03浏览次数:1  
标签:对象 request 代理 10.19 原始 Proxy Subject

代理模式

代理模式(Proxy Pattern)是一种结构型设计模式,它提供了一个代理对象,控制对原始对象的访问,并允许在访问过程中添加额外的逻辑。

下面是一个简单的Java代码示例,演示了代理模式的实现

// 接口定义
interface Subject {
    void request();
}

// 原始对象类
class RealSubject implements Subject {
    @Override
    public void request() {
        System.out.println("RealSubject request");
    }
}

// 代理对象类
class Proxy implements Subject {
    private RealSubject realSubject;

    public Proxy() {
        realSubject = new RealSubject();
    }

    @Override
    public void request() {
        // 在调用原始对象之前或之后执行额外的逻辑
        System.out.println("Proxy pre-processing");
        
        // 调用原始对象的方法
        realSubject.request();
        
        // 在调用原始对象之前或之后执行额外的逻辑
        System.out.println("Proxy post-processing");
    }
}

// 客户端代码
public class ProxyPatternExample {
    public static void main(String[] args) {
        Proxy proxy = new Proxy();
        proxy.request();
    }
}

在上述示例中,我们定义了一个接口 Subject,其中包含一个 request() 方法。

然后,我们实现了原始对象类 RealSubject,它实现了 Subject 接口中的方法。

接着,我们创建了代理对象类 Proxy,它也实现了 Subject 接口,并在内部维护了一个对原始对象的引用。

在代理对象的 request() 方法中,我们可以在调用原始对象之前或之后执行额外的逻辑。在本例中,我们在调用原始对象之前输出一条前置信息,在调用原始对象之后输出一条后置信息。

在客户端代码中,我们实例化了代理对象 Proxy,并调用了其 request() 方法。通过代理对象,我们可以控制对原始对象的访问,并在访问过程中添加额外的逻辑。

代理模式的关键思想是引入一个中间代理对象,它控制对原始对象的访问,并在访问过程中进行控制和增强。代理模式可以实现访问控制、延迟加载、缓存、日志记录等功能,同时保持客户端与原始对象之间的解耦。

标签:对象,request,代理,10.19,原始,Proxy,Subject
From: https://www.cnblogs.com/luoqingci/p/18556265

相关文章

  • 10.19 每日总结(今日Sentinel)
    今天学习服务保护框架Sentinel。学习时长2小时  运行代码java-Dserver.port=8090-Dcsp.sentinel.dashboard.server=localhost:8090-Dproject.name=sentinel-dashboard-jarsentinel-dashboard.jar微服务整合我们在`cart-service`模块中整合sentinel,连接`sentinel-......
  • 2024.10.19 CF2030(Div.2)
    比赛链接Solved:5/8Upsolved:6/8Rank:166E.MEXmizetheScore题意定义一个集合的分数为:将它分成若干个子集,mex和的最大值。(mex从0开始算)给n个数,求所有非空子集的分数之和。\(n\leq2\times10^5\)题解对一个确定的集合,它的划分方式一定是每次分出去一个最长的{0,......
  • 10.19至10.22考试总结
    10.19noip模拟赛一T1序列算法:dp观察到所有数\(\mod3\),所以只有三种取值\(\{0,1,2\}\),所以想要将原序列模\(3\)以后做。经过简单的运算发现,所有数模\(3\)以后做是等价的,所以可以转化。然后考虑题求得很想最长上升子序列,而最长上升子序列有一种\(O(nlogn)\)做法,即记录......
  • 炼石 plan 10.19
    T1--平方数对(sqrt)把\(\sqrtx\)化成\(o\sqrt\alpha\)的形式,\((\sqrtA+\sqrtB)^2\inN\)当且仅当\(\alpha_A=\alpha_B\),那记一下\(\alpha=x\)的\(A/B\)即可求出答案。#include<bits/stdc++.h>#defineintlonglong#defineup(i,l,r)for(inti=l;i<......
  • 2202.10.19
    练习情况P1390公约数的和\(ans=d(\sum\limits_{i=1}^n(sum[\dfrac{n}{d}])-1)\)貌似有十倍经验的题目Code:P1390P4139上帝与集合的正确用法扩展欧拉定理加上递归快速幂一开始预处理\(10^7\)的欧拉函数跑的贼慢后面发现直接求欧拉函数Code:P4129其他写的就是板......
  • 24.10.19
    A数学题,不会。随便取一数\(v\),询问得到\(t\equiv\log_gv\pmodp\)。我们希望找到\(x\)使得\(v^x\equivg\pmodp\),即\(g^{tx}\equivg\pmodp\Leftrightarrowtx\equiv1\pmod{p-1}\)。那么只要\(t\)与\(p-1\)互质即可求得逆元。有原根相关知识可以知......
  • 10.19-10.20 练习
    其实是复健。上一次碰电脑是期末考试完(7月),上上次是noip(2023年11月)。1.P9752[CSP-S2023]密码锁__record要求:语文没问题,会基础语法,有生活常识。枚状态,判断。几乎没有复杂度要求。Code#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+10;intn,ans;int......
  • 10.19 窗口1.0(之后会完善代码,学到哪完善到哪)
    JFrame类的实例是一个底层容器(窗口)其他组件必须被添加到底层容器中,以便借助这个容器和操作系统进行信息交互。Jframe类是Container类的间接子类。当需要一个窗口时,可使用JFrame或其子类创建一个对象。窗口不能添加到另一个容器中JFrame()创建一个无标题窗口JFrame(Strings)创......
  • 【秋招笔试-支持在线评测】10.19京东秋招(已改编)-三语言题解
    ......
  • 【秋招笔试-支持在线评测】10.19小米秋招(已改编)-研发岗题解
    ......