zoukankan      html  css  js  c++  java
  • 代理模式(静态代理)

    参考:http://blog.csdn.net/chenssy/article/details/11179815

    一、代理模式需要三个角色:

    1. Subject: 抽象角色。声明真实对象和代理对象的共同接口。

    2. Proxy: 代理角色。代理对象与真实对象实现相同的接口,所以它能够在任何时刻都能够代理真实对象。代理角色内部包含有对真实对象的引用,所以她可以操作真实对象,同时也可以附加其他的操作,相当于对真实对象进行封装。

    3. RealSubject: 真实角色。它代表着真实对象,是我们最终要引用的对象。

    二、举例:

    1. Subject

    1 package com.tgb.proxy;
    2 
    3 public interface UserMgr {
    4 
    5     void addUser();
    6     void delUser();
    7     
    8 }

    2. Proxy

     1 package com.tgb.proxy;
     2 
     3 public class UserMgrProxy implements UserMgr {
     4 
     5     private UserMgrImpl userMgrImpl = new UserMgrImpl();
     6 
     7     @Override
     8     public void addUser() {
     9         userMgrImpl.addUser();
    10     }
    11 
    12     @Override
    13     public void delUser() {
    14         userMgrImpl.delUser();
    15     }
    16 
    17 }

    3. RealSubject

     1 package com.tgb.proxy;
     2 
     3 public class UserMgrImpl implements UserMgr {
     4 
     5     @Override
     6     public void addUser() {
     7         System.out.println("添加用户....");
     8     }
     9 
    10     @Override
    11     public void delUser() {
    12         System.out.println("删除用户.....");
    13     }
    14 
    15 }

    测试类:

     1 package com.tgb.proxy;
     2 
     3 public class UserMgrMain {
     4     
     5     public static void main(String[] args){
     6         
     7         UserMgr userMgr = new UserMgrProxy();
     8         
     9         userMgr.addUser();
    10         
    11         userMgr.delUser();
    12         
    13     }
    14     
    15 }

    结果:

    添加用户....
    删除用户.....
  • 相关阅读:
    一些常用的接口地址
    1-项目启动
    事件处理优化
    如何javascript获取css中的样式
    mysql编程--创建函数出错的解决方案
    mysql编程---函数
    mysql---数据控制语言(用户及其权限管理)
    php与mysql的常规使用
    php数组的使用
    php函数的使用
  • 原文地址:https://www.cnblogs.com/jiangyi-uestc/p/5754658.html
Copyright © 2011-2022 走看看