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

Java设计模式01-代理模式-静态代理

2天前CN2资讯

静态代理是指,代理类在程序运行前就已经定义好,其与目标类的关系在程序运行前就已经确立

静态代理类似于企业与企业的法律顾问间的关系。法律顾问与企业的代理关系,并不是在“官司”发生后才建立的,而是之前就确立好的一种关系

-----------------------------------------------------------------------------

举例

    静态代理实现转账

    1.定义业务接口IAccountService,含有抽象方法transfer()

public interface IAccountService {
   //主业务逻辑:转账
   void transfer();
}

    2.定义目标类AccountServiceImpl,实现了业务接口,在对接口方法的实现基础上,只实现主业务逻辑转账即可

    这个方法叫做目标方法

public class AccountServiceImpl implements IAccountService {
   /**
   * 目标方法
   */
   @Override
   public void transfer() {
       System.out.println("调用Dao层,完成转账业务");
   }
}

    3.定义代理类 AccountProxy,这个类要实现 IAccount 接口。并且该代理类要将接口对象作为一个成员变量,还要定义一个带参的构造器,这个参数为接口对象。目的将目标对象引入代理类,以便代理类调用目标类的目标方法

/*
*定义代理类,与目标类实现相同的业务接口
*/
public class AccountServiceImplProxy implementes IAccountService {
//声明业务接口对象
private IAccountService target;
   public AccountServiceImplProxy() {       
}
  //业务接口对象作为构造器参数,用于接收目标对象
  public AccountServiceImplProxy(IAccountService target) {
    this.target = target;
  }
  /*
  *代理方法,实现对目标方法的功能增强
  */
  @Override
  public void transfer() {
  //此处为对目标类的增强
   System.out.println("对转账人身份进行认证");
   target.transfer();
  }
       
}

    4.定义客户类 Client。在客户类中首先要创建目标对象,再创建代理对象,并使用目标对象对其进行初始化。然后由代理对象来调用执行业务方法

public class MyTest {

    public static void main(String[] args) {

        //创建目标对象

        IAccountService target = new AccountServiceImpl();

        //创建代理对象,并使用目标对象初始化它

        IAccountService servce = new AccountServiceImplProxy(target);

        //这里执行的内容,就是对目标对象增强过的内容

        service.transfer();

    }

}

    你可能想看:

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

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

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

    分享给朋友:

    “Java设计模式01-代理模式-静态代理” 的相关文章

    大陆VPS选购指南:如何选择最适合的虚拟私人服务器

    1.1 什么是大陆VPS 大陆VPS,即中国大陆的虚拟私人服务器,是一种通过虚拟化技术将一台物理服务器分割成多个独立虚拟服务器的服务。每个VPS都拥有独立的操作系统、存储空间和带宽资源,用户可以像使用独立服务器一样进行管理和配置。大陆VPS的优势在于其本地化的数据中心和网络连接,能够为国内用户提供更...

    ADSL技术详解:了解ADSL有多少波特与速率

    ADSL,即非对称数字用户线,是一种通过现有电话线提供互联网接入的技术。简单来说,ADSL允许我们在不干扰电话通话的情况下,访问互联网并提供比传统拨号更快的速度。对于那些希望在家中使用互联网的人来说,这无疑是一个巨大的进步。 从历史的角度来看,ADSL在90年代末期逐渐进入大众视野,到了2000年代...

    甲骨文云免费套餐与ARM CPU优势解析

    甲骨文云(Oracle Cloud)是一个强大的云服务平台,近年来受到了越来越多用户的关注。我自己也曾经探索过这个平台,在这里我想和大家聊聊甲骨文云的免费套餐,这对中小企业以及开发者来说真的是一个不错的选择。免费的套餐不仅简化了入门程序,也为新用户提供了足够的资源来尝试不同的云服务。 甲骨文云的免费...

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

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

    Gcore VPS评测:高性能云计算虚拟专用服务器的最佳选择

    Gcore VPS是一款基于云计算的虚拟专用服务器,近年来备受用户推崇。我发现它不仅仅是一台服务器,而是为各种应用和业务需求提供了一种灵活可靠的解决方案。从高负载网站到应用程序的托管,Gcore VPS都能很好地满足这些需求。 了解Gcore VPS的定义及功能,首先可以知道它是针对企业和个人用户推...

    获取CloudCone优惠码,享受超值VPS主机折扣

    CloudCone 优惠码概述 在探索CloudCone之前,我想先聊聊关于优惠码的事情。CloudCone优惠码是指通过一些特定的方式获得的、可以享受价格折扣的代码。这些代码常常可以在购买VPS主机或其他服务时使用,帮助我节省一些开支。比如,有时候我能在优惠活动中找到让人心动的折扣,几乎是对我钱包...