二、05【设计模式】之享元模式

享元模式是一种结构型设计模式,它通过共享技术减少大量相似对象的创建,从而降低内存使用和提高性能。该模式将对象的状态分为内部状态和外部状态,内部状态不随环境变化,可以共享;外部状态则会随环境改变,不可共享。常见的应用包括Java中的String和Integer,它们利用享元模式优化内存使用。在实现享元模式时,需要注意线程安全和系统逻辑复杂性的增加。
摘要由CSDN通过智能技术生成

今天的博客主题

       设计模式 ——》 设计模式之享元模式


享元模式 FP (Flyweight Pattern)

 

定义

使用共享技术有效的支持大量细粒度的对象。

又称为轻量级模式,是对象池的一种实现。类似于线程池,避免不停的创建销毁对象,消耗性能。

提供了减少对象数量从而改善应用所需的对象结构方式。

其宗旨就是:共享细粒度对象,将多个对同一对象的访问集中起来,不必为每个访问者单独创建一个对象,依次来降低内存CPU的消耗。属于结构性模式。

因为要求细粒度的对象,所以不可避免的会使用对象数量多且性质相似,我们就将这个对象的信息分为两部分:内部状态和外部状态

内部状态是指对象共享出来的信息,存储在享元对象内部,不会随着环境的改变而改变。

外部状态是说对象得以一个依赖的标记,是随着环境的变化而改变,不可共享的状态。

比如连接池中的连接对象,保存连接对象里的用户名,密码,url等信息,在创建对象的时候就设置好了,不会随着环境的改变而改变,这些就是内部状态。每个连接需要回收利用,把它标记为可用状态,这些就是外部状态。

 

说白了就是对象共享,共享对象。

 

应用场景

1)系统有大量相似对象,需要缓冲池的场景。

2)多用于系统底层的开发,以便解决系统的性能。

3)

 

优点

1)减少对象的创建,减少内存中对象数量,降低内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值