代理模式

   代理模式(Proxy Pattern): 给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。 代理对象在客户端和目标对象之间起到中介的作用。

适用场景

  • 保护目标对象

  • 增强目标对象

优点

  • 代理模式能将代理对象与真实被调用的目标对象分离.

  • 一定程度上降低了系统的耦合度,扩展性好。

  • 保护目标对象

  • 增强目标对象

缺点

  • 代理模式会造成系统设计种类的数据增加

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

  • 增加系统的复杂度

扩展

  • 静态代理

  • 动态代理

  • CGLib代理

下面我们来看一种业务场景,在买房的时候,我们经常会通过中介来进行沟通。中介

Golang Demo

Java Demo

接下来,我们引入一个业务场景。 进行商城下订单的设计,同时通过代理来进行分库。也就是我们会根据orderid的取模值来进行模式分库

首先我们模拟一下的spring编程模式。

定义一个订单类。

接下来分别定义Dao层和Service层。

静态代理

静态代理 UML

静态代理 UML

动态代理

动态代理 UML

动态代理的UML

补充另一个版本的Java/Scala Demo 以及源码解析

Java Demo_

Scala Demo

UML_

源码解析

Last updated

Was this helpful?