当前位置:首页 > CN2资讯 > 正文内容

#yyds干货盘点# 设计模式之代理模式:静态代理代理模式实例

8小时前CN2资讯

设计模式之代理模式:静态代理

1.简述:

代理就是用于通过对真实对象的封装,对原有业务逻辑的扩充,来实现扩展性。。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法,来达到添加我们需要业务逻辑的目的。由于在程序运行前代理类就已经获得目标对象了,所以把这类称为静态代理。

2.代码实现:

/**
* 抽象角色接口
*/
public interface Hello {

/**
* 打招呼
*/
public void sayHello();
}/**
* 目标对象角色类
*/
public class RealHello implements Hello {
/**
* 实现接口的方法
*/
@Override
public void sayHello() {
System.out.println("你好");
}
}/**
* 代理对象角色类
*/
public class ProxyHello implements Hello {

private Hello realHello;

public ProxyHello(Hello realHello) {
this.realHello = realHello;
}

/**
* 实现接口的方法
*/
@Override
public void sayHello() {
before();
realHello.sayHello();
after();
}

/**
* 在实现方法前可以做的事情
*/
public void before(){
System.out.println("摘下耳机");
}

/**
* 在实现方法后做的事情
*/
public void after(){
System.out.println("戴上耳机");
}
}/**
* 客户端,实现代理模式
*/
public class ProxyTest {

public static void main(String[] args) {
System.out.println("没有代理的,目标对象自己实现:");
Hello hello = new RealHello();
hello.sayHello();
System.out.println("=========================");
System.out.println("代理对象实现的:");
ProxyHello proxyHello = new ProxyHello(hello);
proxyHello.sayHello();


}
}
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24783.html

    分享给朋友:

    “#yyds干货盘点# 设计模式之代理模式:静态代理代理模式实例” 的相关文章

    ColoCrossing怎么样?高性价比与稳定性的最佳选择分析

    ColoCrossing是一家自2003年起在网络主机市场崭露头角的公司,位于美国纽约州的布法罗市。这家公司以其稳定的性能和合理的价格而闻名,在美国的多个大城市设有数据中心,实现了从东海岸到西海岸的覆盖。这一遍布美国的基础设施,能够为各类业务提供灵活且可靠的网络服务。作为一个用户,我总能感受到Col...

    inet.ws纽约:高性能VPS服务与折扣优惠码解析

    inet.ws是一家新兴的互联网服务提供商,成立于2020年。尽管公司年轻,但它凭借创新的VPS服务迅速在市场上占据了一席之地。最让人称道的是,inet.ws致力于为用户提供稳定和高效的云服务器体验,尤其是在他们的纽约数据中心,这里被认为是其最重要的运营点之一。 在发展的过程中,inet.ws不断完...

    QQ邮箱服务器完全指南:配置、安全性与优化技巧

    QQ邮箱服务器概述 QQ邮箱是由腾讯公司推出的一款广受欢迎的电子邮件服务。它的优势不仅在于强大的存储容量,还有丰富的功能,适合个人和企业用户使用。很多人都习惯使用QQ邮箱来发送、接收邮件,因此有必要了解其背后的邮件服务器。 在我使用QQ邮箱的过程中,发现它使用的是腾讯自家搭建的邮件服务器。这些服务器...

    Nginx Cache Control: 如何使用 No Cache 精确管理缓存策略

    作为一名开发者,我一直非常欣赏 Nginx 作为高性能 HTTP 和反向代理服务器的能力。Nginx 不仅在稳定性和可扩展性方面表现出色,它的缓存控制功能也相当强大。通过设置响应头,Nginx 能有效地管理客户端和代理服务器的缓存行为,让我在开发和部署时能够更灵活地处理资源的缓存。 使用缓存控制的好...

    如何查看域名是否被墙:检测工具与方法指南

    域名被墙是一个对很多网站管理员和用户来说都比较陌生的概念。简单来说,当一个网站的内容被认为敏感或者违反某些规定时,防火墙就会把这个域名屏蔽。即使用户通过输入域名试图访问,DNS 解析也许正常,但实际上网站却无法顺利加载。在国内用户访问国外网站或者国外用户尝试访问国内网站时,情况尤为明显,就好像在国际...

    如何解决IP被封的问题及预防措施

    在互联网的世界中,IP被封是一件不容小觑的事情。那么,为什么IP会被封呢?这其中有许多常见的原因值得我们关注。 首先,频繁请求是一个主要的原因。当我们频繁访问某个网站时,网站会检测到异常的请求频率,这通常会被视为一种攻击行为。想象一下,一个用户在短时间内不断刷新页面,网站为了保护自身的安全,可能会将...