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

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

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

  • 相关阅读:
    Business talking in English
    My strength (C-A-R)
    牛排有几分熟怎么说
    深入理解 Java try-with-resource 语法糖
    什么时候用异常,什么时候用断言?
    Java陷阱之assert关键字
    Java断言绝对不是鸡肋
    Java 条件编译
    Java 语法糖详解
    Java中有哪些语法糖?
  • 原文地址:https://www.cnblogs.com/alomsc/p/12581448.html
Copyright © 2011-2022 走看看