zoukankan      html  css  js  c++  java
  • JDK静态代理示例代码

    JDK静态代理示例代码

    1. 业务接口
    2. 接口的实现类
    3. 代理类,实现接口,并扩展实现类的功能

    1、业务接口

    /**
    * 业务接口
    * @author pc
    *
    */
    public interface UserService {
       // 增加一个用户
       public void addUser();
       // 编辑账户
       public void editUser();
    }
    

    2、业务实现类

     /**
     * 业务实现类
     * @author pc
     *
     */
    public class UserServiceImpl implements UserService {
    
        public void addUser() {
            System.out.println("增加一个用户。。。");
        }
    
        public void editUser() {
            System.out.println("编辑一个用户。。。");
        }
    
    }
    

    3、代理类(实现业务接口,并实例化业务实现类)

     /**
     * 代理类
     *
     * @author pc
     *
     */
    public class UserServiceProxy implements UserService {
    
        private UserServiceImpl userImpl;
    
        public UserServiceProxy(UserServiceImpl countImpl) {
            this.userImpl = countImpl;
        }
    
        public void addUser() {
            System.out.println("代理类方法,进行了增强。。。");
            System.out.println("事务开始。。。");
            // 调用委托类的方法;
            userImpl.addUser();
            System.out.println("处理结束。。。");
        }
    
        public void editUser() {
            System.out.println("代理类方法,进行了增强。。。");
            System.out.println("事务开始。。。");
            // 调用委托类的方法;
            userImpl.editUser();
            System.out.println("事务结束。。。");
        }
    
    }
    

    4、测试类

     public static void main(String[] args) {
        UserServiceImpl userImpl = new UserServiceImpl();
        UserServiceProxy proxy = new UserServiceProxy(userImpl);
        proxy.addUser();
        System.out.println("----------分割线----------");
        proxy.editUser();
    }
    

    5、结果

     代理类方法,进行了增强。。。
    事务开始。。。
    增加一个用户。。。
    处理结束。。。
    ----------分割线----------
    代理类方法,进行了增强。。。
    事务开始。。。
    编辑一个用户。。。
    事务结束。。。
    
  • 相关阅读:
    kafka参数解析+启动参数解析
    flume参数解析+启动参数解析
    flume+flume+kafka消息传递+storm消费
    C++快速读取大文件
    阿里云ecs : Couldn't connect to host, port: smtp.aliyun.com, 25; timeout -1;
    对渲染相关操作封装的类库
    51nod-1134 最长递增子序列,用线段树将N^2的dp降到NlogN
    51nod-1503 猪和回文
    51nod1073-约瑟夫环,递归。
    算法基础题
  • 原文地址:https://www.cnblogs.com/muscleape/p/9018299.html
Copyright © 2011-2022 走看看