设计模式:享元模式 (我称之为网盘小视频模式/共享单车模式)

举个例子🌰:

我今天从群里老哥手里拿到了网盘资源,我朋友也拿到了一样的网盘资源。那么我们两个手里的资源肯定是同一份。存在服务器的某处,我们俩从不同的入口访问了而已。

这个就是享元模式

享元模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。

说人话:大家一起看资源,服务器保存一份就好了,不会爆内存。

意图:运用共享技术有效地支持大量细粒度的对象。讲讲这个细粒度是什么,指的是你看片的时候,时间,入口,设备可能是不一样的,但是片本身的资源是固定的,这个就是细粒度。

反应到实际项目中:你将面对两种状态 “外部状态” “内部状态” 。 外部状态指的是动态变化的参数(看片的时候,时间,入口,设备),内部状态是不变的(片本身的资源是固定的)

最大的应用是 池技术 例如:数据库连接池 线程池

look,flyweight(抽象享元)用于定义享元对象,接受客户端传过来的外部状态

flyweightFactory(享元工厂🏭),是一个池容器,用于维护享元对象

 代码dddddddemo,共享单车的例子

1.定义抽象享元

2.享元工厂(维护享元对象的池子)

 3. 客户端(给予享元对象一些外部状态)

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董厂长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值