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

       }

    }

  • 相关阅读:
    ibatisnet系列
    jQuery弹出层演示
    winform中datagridview的用法
    ASP.net:截取固定长度字符串显示在页面,多余部分显示为省略号
    hdu 4507 恨7不成妻(求l,r中与7不相关数字的平方和)
    hdu 2089 数位dp
    uestc 1307 统计数位之间相差不小于2的数的个数
    Spoj 2319 数位统计(0,1, 2^k1 这些数分成M份)
    zoj 3416 统计平衡数个数
    数位统计 sgu 390 <浅谈数位类问题>
  • 原文地址:https://www.cnblogs.com/oftenlin/p/3096638.html
Copyright © 2011-2022 走看看