返回列表 发帖

[笔记]代理模式与几种模式的对比

刚开始学结构模式总觉得几种模式都差不多,因为以下总结了代理模式与装饰器模式、外观模式、责任链模式的差别
代理与装饰器
代理:
1)客户对象无法直接访问目标对象
2)代理对象提供目标对象的访问权限
3)代理对象不能增加任何额外的功能
装饰器:
1)客户对象可以直接访问目标对象
2)装饰器不负责访问权限问题
3)装饰器却增加了额外的功能
代理与外观
代理:
1)代理对象代表一个单一对象
2)客户对象无法直接访问目标对象
3)代理对象提供对单独的目标对象的访问控制
外观:
1)外观对象代表一个子系统
2)客户对象可以直接访问子系统中的各个对象
3)外观对象提供对子系统各元件功能的简化的共层次的调用接口
代理与责任链
代理:
1)代理对象代表一个单一对象
2)客户请求首先被代理对象接收,但是永远不会由代理对象直接处理
3)客户请求总是要被转发给目标对象
4)只要客户和目标对象之间的通讯正常,那么请求的回应是有保障的。
责任链:
1)责任链里会有多个对象
2)第一个接收到客户请求的对象就有可能处理这个请求
3)只有当一个接收者无法处理客户请求时,才会把请求传递到下一个对象
4)请求的回应无法得到保证,就是说可能一直到责任链的末尾也没有一个对象能够处理这个请求。

返回列表 回复 发帖