设计模式 -- 代理模式

前言

月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)

央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)

泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)

月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容

希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!

一、什么是代理模式?

        代理模式,是指为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另外一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用.生活中,代理现象很普遍,包括找律师,找房屋中介,都是一种代理行为.

二、代理模式的优缺点

优点:

1.代理模式是可以将真实被调用目标对象与代理对象分离开了,一定程度上降低了系统的耦合度,扩展性好

2.可以对外隐匿目标对象的真实情况,起到保护目标对象的功能

3.可以对目标对象的功能进行增强扩展

缺点:

1.代理模式会造成系统设计中类的数量增加,增加了系统的复杂度

2.在客户端和目标对象中增加一个代理对象,会造成请求处理速度变慢

三、代理模式的结构:

设计模式 -- 代理模式_第1张图片

相同类型的具体类可以设置多个,这样代理类可以分别代理不同的具体类,以实现不同的代理

四、代理模式实战

        假设现在有一个幸福之家三口,小明,以及小明的爸爸和妈妈.而爸爸作为一家之主,力求满足所有家庭的条件,那么现在就让爸爸作为一家的代理对象,开始服务被代理人吧.

1.首先创建公共的接口

设计模式 -- 代理模式_第2张图片

2.创建代理对象

 设计模式 -- 代理模式_第3张图片

 3.创建真实的对象

设计模式 -- 代理模式_第4张图片

 设计模式 -- 代理模式_第5张图片

4.开始测试

 设计模式 -- 代理模式_第6张图片

 5.结果

 

五.总结

        代理模式在平时的使用中还是很多的,包括aop以及spring框架中的jdk动态代理以及静态代理,都是代理模式的现实使用.使用模式的时候一定要考虑场景,不能强硬的为了模式而模式.

你可能感兴趣的:(设计模式,代理模式,设计模式)