您的位置:首页 > 其它

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

2017-07-18 17:35 507 查看

一、我的理解

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

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

三、Java代码



Circle类有多种颜色可供选择,但实际上同一颜色的对象是可以大家共用的,因此使用一个哈希map存储已经生成的对象,当再次获取相同颜色的对象时,直接返回已有对象即可,当没有对应颜色对象时,则创建一个新的,并存储至哈希map中以便下次调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: