解决方案 »

  1.   

    我不知道楼主为何会想到代理模式,有相似的地方(对于我来说,不需要知道具体是谁把活干了,两个模式都有这个特点),但两个类完全不是一回事。两个的区别,我写一段代码模拟一下(实际肯定不是这样,但是道理类似,这两种代码你会用哪个?你就知道何为不用代理模式了): //责任链
    if(..){
    ..
    return ..;
    }
    if(..){
    return ..;
    }
    if(..){
    return ..;
    }
    if(..){
    return ..;
    }
    if(..){
    return ..;
    }
    ...

    //代理(你说的层层代理)
    if(..){
    if(..){
    if(..){
    if(..){
    if(..){
    ..
    return ..;
    }
    }
    }
    }
    }
    代理模式主要为了在我不方便直接引用或者调用干活的类才搞的,代理类就是接活,被代理类干活,实现的是这个目的。责任链对于我来说,同样不知道具体的活是谁干的,但是他只要有下家,就传给下家干活;如果没有下家,就自行干了,代理模式的代理类理论上不具备干活的功能。希望在讨论。