zoukankan      html  css  js  c++  java
  • spring十三种代理之 -代理模式

    代理模式和装饰器模式特别的像,尤其体现在代码上

    总结:1、加以控制 2 、添加功能

     以静态代理举例

    一、静态代理

    1创建接口

    public interface Train {
    
    	public void run2();
    	
    }
    

     2、实现接口的实体类

    public class TrainCar extends Car implements Train{

    @Override
    public void run2() {
    System.out.println("火车拉人");

    }

    }

      3、代理类

    /**
     * 火车代理
     * @author tomca
     *
     */
    //所有的都是来源于train ,这个代理类代理的是trainCar,以后trainCar的事情都会由TrainCarProxy来进行代理,你能在使用TrainCar这个类了,这个就是和装饰类最大区别
    public class TrainCarProxy  implements Train{
    	
    	private TrainCar trainCar;
    	
    	public TrainCarProxy(TrainCar trainCar){
    		this.trainCar = trainCar;
    	}
    
    	@Override
    	public void run2() {
    		// TODO Auto-generated method stub
    		
    	}
    
    } 

    总结: 

    所有的都是来源于train ,这个代理类代理的是trainCar,以后trainCar的事情都会由TrainCarProxy来进行代理,你能在使用TrainCar这个类了,这个就是和装饰类最大区别

    原有的类不会暴露出来,不会修改的原有的类可以加以保护。

    缺点:因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类,类太多.同时,一旦接口增加方法,目标对象与代理对象都要维护.

  • 相关阅读:
    js元素remove
    sql里将重复行数据合并为一行,数据用逗号分隔
    treegrid 折叠全部节点
    T-sql 遍历结果集
    批量插入实体类转化DataTable
    easyui 自己写的一些小东西
    lua 笔记
    为eclipse添加tomcat插件(eclipse tomcat plugin)
    netstat指令
    转 vim常用命令总结
  • 原文地址:https://www.cnblogs.com/alomsc/p/12581448.html
Copyright © 2011-2022 走看看