针对 java设计模式中 代理模式-静态代理模式 的初步理解

本文通过大米销售和红包赠送的例子,深入浅出地解释了静态代理模式的概念。静态代理模式中,代理对象(如超市)实现与被代理对象(如工厂)相同的接口,提供额外的服务或包装,以方便用户(消费者)使用。这种模式在代码设计中用于增加功能、控制访问或隔离复杂性。在实际应用中,如超市对大米的包装和销售策略,以及红包的包装形式,都体现了静态代理的思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态代理模式

例如 工厂的大米 和 超市中售卖大米。超市售卖大米要从工厂进货,然后可以换成大包装卖,或者小包装抽真空卖,还可以散装卖。不管超市想怎么卖,其实就是把工厂的米换个包装方式,根据客户需要来出售,这样换包装有利于大米卖出去。

例如 100块钱的人民币,过年的时候 我们最好用例如新年快乐的红包装;人家结婚的时候,最好用例如新婚快乐的红包装;人家生日的时候,实在找不到生日快乐的红包,也可以用恭喜发财的红包来转。总之比直接拿100块现金,给人家要体面一些。 核心都是给100块钱。

我们在写代码的时候,就是围绕这个大米、100块钱 来写。大米和超市售卖时的大米是有共同特征:大米。虽然可以不将这个特征提取出来,但是出于某种我尚不清楚的原因,利用接口的方式,将这个“大米”的特征给规范好,保证超市的大米,和所进货的大米有共同的特征,不会把大米弄错成小麦。消费者去买大米时,就直接去买超市买。

超市卖大米,就是一个代理"poxy",它需要实现“大米”的所有的特征,工厂大米也要实现“大米”的所有特征,要不然这个大米就不完整,说不定大米在工厂是米,在超市却是还没有脱壳的稻谷。

然后超市在“大米”的接口的基础上,进行一系列的包装。消费者直接去工厂买大米,肯定会遇到很多问题,不如在超市买米方便。 包红包也是如此,直接给钱,会有些不礼貌,不体面。

这就是我理解的静态代理的意义已经 接口- 被代理对象-以及代理对象。代理对象的内容最丰富。

被代理对象 和 代理对象都是普通类。我们需要将被代理对象实例化才能使用。 去超市买米,我们买的其实是 工厂的米(被代理对象)。 在代码模式的使用中,需要实例化被代理对象(工厂的米),然后才能在超市中购买到(超市就是代理对象POXY)。可以是在main方法中实例工厂的米,也可以是在 超市中(poxy中)实例化工厂的米。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值