jdk-静态代理

    xiaoxiao2025-09-07  660

    Jdk的静态代理要求,目标对象和代理对象都要实现相同的接口。然后提供给客户端使用。这个代理对客户端是可见的,其结果图如下:

    1、接口

    package com.wl.jdk.staticproxy; /**  * 接口  */ public interface UserService {          public void sayHello(String content);      }

     

    2、目标对象

    package com.wl.jdk.staticproxy; /**  * 实现类(实现接口的目标对象)  */ public class UserServiceImpl implements UserService{     public void sayHello(String content) {         System.out.println("主人说:" + content);     }      } }

    3、代理类

    /**  * 目标对象的代理对象,UserServiceImplProxy拥有目标对象的引用  * @version 2016年8月15日下午1:49:55  * @author wuliu  */ public class UserServiceImplProxy implements UserService{     private UserService userService;          public UserServiceImplProxy(UserService userService) {         this.userService = userService;     }     public void sayHello(String content) {         System.out.println("开始......");         userService.sayHello(content);         System.out.println("结束......");     }      }

     

    4、测试类

    package com.wl.jdk.staticproxy; public class Client {              public static void main(String[] args) {         UserService userService = new UserServiceImplProxy(new UserServiceImpl());         userService.sayHello("早上好!");     } }

     

    装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。换句话 说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,当我们使用装饰器模 式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。

    转载请注明原文地址: https://ju.6miu.com/read-1302393.html
    最新回复(0)