Java基础-代理模式

2021-01-28  本文已影响0人  森屿暖茶

代理模式是什么?

首先搞清楚代理是什么,代理就是代替你去做你做的事情。比如你买东西,你不会直接去厂家买,你都是通过网购、实体店、代购等等途径买到你想要买的东西。这些途径我们都可以称之为代理。

那代理有什么用呢?代理可以让我们最终完成目的的过程中做一些其他的操作。比如网购有满减优惠、实体店能够体验真实产品、代购更便宜等等。这些额外的操作就是代理的作用。

java 代理模式有2种,静态代理动态代理。一般我们使用动态代理,因为静态代理虽然实现了需求违背开闭原则。

举个栗子。

有一个接口用于购买苹果

厂商实现该接口提供了买苹果的对外方法

在不使用代理类的情况下 我们直接通过厂商购买

假如:有需求静态代理商有折扣优惠 70就可以买100的苹果  而且还升级为红富士

代理类 代理类

静态代理实现:

试想一下,如果哪天厂商提供的购买接口发生了变化,那么这些静态代理的类都要做出相应的修改,那将是多么巨大的工作量,违反了开闭原则(对修改关闭,对拓展开放)。

动态代理实现。

动态代理类 通过动态代理实现。

动态代理常常跟反射一起使用实现想实现的需求。如APP插件化,启动一个未注册的activity时。可以使用动态代理+反射进行activity的伪装启动。

上一篇下一篇

猜你喜欢

热点阅读