100分 |
这个我还真没想过,看楼下回答~
|
100分 |
2个不是一个东西。
责任链 强调的是一个链。 |
涨姿势了
|
|
100分 |
我不知道楼主为何会想到代理模式,有相似的地方(对于我来说,不需要知道具体是谁把活干了,两个模式都有这个特点),但两个类完全不是一回事。两个的区别,我写一段代码模拟一下(实际肯定不是这样,但是道理类似,这两种代码你会用哪个?你就知道何为不用代理模式了):
//责任链 if(..){ .. return ..; } if(..){ return ..; } if(..){ return ..; } if(..){ return ..; } if(..){ return ..; } ... //代理(你说的层层代理) if(..){ if(..){ if(..){ if(..){ if(..){ .. return ..; } } } } } 代理模式主要为了在我不方便直接引用或者调用干活的类才搞的,代理类就是接活,被代理类干活,实现的是这个目的。 责任链对于我来说,同样不知道具体的活是谁干的,但是他只要有下家,就传给下家干活;如果没有下家,就自行干了,代理模式的代理类理论上不具备干活的功能。 希望在讨论。 |