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这个类了,这个就是和装饰类最大区别

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

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

  • 相关阅读:
    html websocket
    使用公钥进行远程登录主机/远程执行命令
    cropper.js 跨域问题
    利用PhantomJS生成网站截图
    Windows下的MySQL删除data文件夹后……
    快速设置环境变量
    压缩JS时生成source_map
    调试android chrome web page简明备忘
    CURL 简介【转载】
    一些同形异码字符
  • 原文地址:https://www.cnblogs.com/alomsc/p/12581448.html
Copyright © 2011-2022 走看看