代理模式
代理模式(Proxy Pattern): 给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。 代理对象在客户端和目标对象之间起到中介的作用。
适用场景
保护目标对象
增强目标对象
优点
代理模式能将代理对象与真实被调用的目标对象分离.
一定程度上降低了系统的耦合度,扩展性好。
保护目标对象
增强目标对象
缺点
代理模式会造成系统设计种类的数据增加
在客户端和目标对象增加一个代理对象,会造成请求处理速度变慢
增加系统的复杂度
扩展
静态代理
动态代理
CGLib代理
下面我们来看一种业务场景,在买房的时候,我们经常会通过中介来进行沟通。中介
Golang Demo
Java Demo
接下来,我们引入一个业务场景。 进行商城下订单的设计,同时通过代理来进行分库。也就是我们会根据orderid的取模值来进行模式分库
首先我们模拟一下的spring编程模式。
定义一个订单类。
接下来分别定义Dao层和Service层。
静态代理
静态代理 UML

动态代理
动态代理 UML

补充另一个版本的Java/Scala Demo 以及源码解析
Java Demo_
Scala Demo
UML_
源码解析
Last updated
Was this helpful?