23种设计模式之代理模式(静态代理)

23种设计模式之代理模式(静态代理)

一:为什么学习代理模式:

  代理模式实际上是SpringAOP的底层! 【SpringAOP 和 SpringMVC (面试必问)】   

二:代理模式(基本概念): 

  基本概念:代理模式的核心作用就是通过代理,控制对对象的访问。这跟实际中是一样的,例如说我们租房子时遇到的中介,这就是一个代理,比如有人要找中介帮忙出租房屋,那么首先处理这事的就是中介,虽然自己的房子需要出租给其他人,但是出租房子前后的一些必须要做的事(带住客看房,签订住房合同,收取租房费用)等等,都由这个中介来处理。

在程序中也是如此,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。这也是AOP的实现原理。

三:那么代理模式的核心角色该如何设计呢?

  角色分析:

    ·抽象角色: 通过接口或抽象类声明真实角色实现的业务方法
·真实角色: 实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。(被代理的角色)它只关注真正的业务逻辑,比如拍戏。
·代理角色: 实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。如谈合同,布置场地等等。
·客户:访问代理对象的人

四:代理模式的分类

  1、静态代理 (静态代理是我们自己创建一个代理类)   【本篇文章我们先深入了解静态代理模式,动态代理下篇文章给大家讲解】

  2、动态代理 (动态代理是程序自动帮我们生成一个代理)

五:静态代理(来个代码看看吧)

 

  1、根据上面的实现步骤,首先来写一个抽象角色

1 //租房的接口      (抽象角色)
2 
3 public interface Rent {
4 
5     void rent();
6     
7 }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 23种设计模式之代理模式(静态代理)