大话设计模式--读书笔记5代理模式

去年面试的一道题,我答错了,理解成中介者模式上了

Proxy Patern

代理模式:给某一个对象提供一个代理,并由代理对象控制对象的引用。

某些情况下,一个客户不想或者不希望直接引用某对象,可以通过一个 代理 第三方来实现间接引用。代理对象可以在客户端和目标对象之间起到 中介 作用,并可以通过代理对象去掉客户不能看到的内容和服务 或者 添加额外的服务。

(当学生当惯了,出现新的东西必须用概念来理解,而不是操作,这个是抄的)

引入一个代理 实现对 实际对象的操作 或者 将 新的对象 作为 正式对象的 替代, 代理模式,通过引入 代理对象 来实现 间接访问 一个对象

为了加深理解
原书是这样举例:
卓贾易 喜欢一名叫娇娇的美女
想追求她 通过 戴励 将自己的礼物 送给了 娇娇

结构图
大话设计模式--读书笔记5代理模式_第1张图片

娇娇不认识追求他的人,但可以通过 代理人戴励来 收到礼物

实现代码:

https://github.com/FastStonewkx/hometown

可怜我还是单身呢 <_>

代理模式结构图

大话设计模式--读书笔记5代理模式_第2张图片

spring中有一种动态代理
spring AOP 面向切面

后面需要学习,目前只会用,也用的不好。

优点:
代理模式能够协调调用者和被调用者,在一定程度上降低了系统耦合度
远程代理使得客户端可以访问远程机器上的对象,远程机器可能性能更好(云概念),可以快速响应并处理客户端请求
虚拟代理通过使用一个小对象来代表一个大对象,可以减少系统资源的消耗,对系统进行优化并提高运行速度
保护代理可以控制对真实对象的使用权限

冏,太高大上了,需要以后肯定重新写一遍。

缺点:
客户端与主体之间增加了代理,可能会造成处理速度变慢
实现代理模式需要额外的工作,加大了系统复杂度。

现阶段先快速把各种模式过一遍,有一个印象。在后期编码过程中在慢慢体会,这是我的学习过程。没时间看书了,都是网上的东西。

参考:
http://design-patterns.readthedocs.io/zh_CN/latest/structural_patterns/proxy.html

https://www.kancloud.cn/dengyigegushi/details-dahua/100443

猪八戒高老庄要娶这家主人的女儿为妻,孙悟空扮作高小姐

啦啦啦啦啦啦

猪八戒 拥抱 亲嘴
孙悟空 代理者
高小姐(被代理者)

原谅我差劲的文笔,还是为了加深理解。就先写到这了。
代码没有难度,重要的是思路。

(睡了)

你可能感兴趣的:(Java,读书笔记)