zoukankan      html  css  js  c++  java
  • Java 设计模式之普通代理

    代理一般用于给多个的类实现相同的方法,如记录日志、权限控制等等。普通代理的实现步骤如下:

    一、定义接口

    package com.casic.test.proxy;

    public interface UserService {

       /**

        * 添加用户

        */

       public void addUser();

       /**

        * 删除用户

        */

       public void deleteUser();

       /**

        * 查询用户

        */

       public void queryUsers();

    }

    二、接口实现

    public class UserServiceImpl implements UserService {

       public void addUser() {

          System.out.println("添加 一个用户 ");

       }

       public void deleteUser() {

          System.out.println("删除一个用户 ");

       }

       public void queryUsers() {

          System.out.println("查询所有用户 ");

       }

    }

    三、代理同样实现接口,并拥有一个接受接口对象的构造参数

    public class UserServiceProxy implements UserService{

       private UserService userService;

       /**

        * @param userService UserService 接口

        */

       public UserServiceProxy(UserService userService) {

          this.userService = userService;

       }

       public void addUser() {

          System.out.println("------开始添加------");

          userService.addUser();

          System.out.println("------添加完成------");

       }

       public void deleteUser() {

          System.out.println("------开始删除------");

          userService.deleteUser();

          System.out.println("------删除完成------");

       }

       public void queryUsers() {

          System.out.println("------开始查询------");

          userService.queryUsers();

          System.out.println("------查询完成------");

       }

    }

    四、代理调用

    1.声明一个实现类对象,用接口形式声明

    2.将声明的对象传入代理类,获得代理类的实现对象

    package com.casic.test.proxy_1;

    import org.junit.Test;

    public class UserServiceTest {

       @Test

       public void test() {

          UserService userService = new UserServiceImpl();

          userService = new UserServiceProxy(userService);

           userService.addUser();

       }

    }

  • 相关阅读:
    03 python学习笔记-文件操作
    02 Python学习笔记-基本数据类型
    01 Python简介、环境搭建及包管理
    一、如何使用postman做接口测试笔记一
    django测试开发-1.开始Hello django!
    Oracle创建用户并给用户授权查询指定表或视图的权限
    ORA-00933 UNION 与 ORDER BY
    excel设置单元格不可编辑
    oracle之分组内的字符串连接
    10 款强大的JavaScript图表图形插件推荐
  • 原文地址:https://www.cnblogs.com/oftenlin/p/3096638.html
Copyright © 2011-2022 走看看