设计模式学习—享元模式(Flyweight Design Pattern)

一、我的理解

享元模式的主要作用在于提高一些对象的利用率,对重复对象的重复获取加以限制。其实代码中很多对象并不需要重复创建,加入多个方法读取同一个对象的值时,根本没有必要大家各拷贝一份,完全可以采用享元模式,即大家共用这一个对象即可。但这样做很容易出现的问题就是线程安全。因此我的理解是享元模式适用于那种读操作较多,而基本没有什么写操作的时候。

二、实现方式:哈希表的存储,每个对象有唯一标识,当获取相同标识对象时,直接返回已有对象,不用重新创建

三、Java代码


Circle类有多种颜色可供选择,但实际上同一颜色的对象是可以大家共用的,因此使用一个哈希map存储已经生成的对象,当再次获取相同颜色的对象时,直接返回已有对象即可,当没有对应颜色对象时,则创建一个新的,并存储至哈希map中以便下次调用。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值