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();

       }

    }

  • 相关阅读:
    食谱
    食谱
    食谱
    无题
    重要通知
    幼儿食谱
    安卓应用开发常用代码
    安卓开发环境搭建
    《浪潮之巅》读书笔记——第11章 摩托罗拉
    预制redis数据
  • 原文地址:https://www.cnblogs.com/oftenlin/p/3096638.html
Copyright © 2011-2022 走看看