Java享元模式(Flyweight Pattern)
2024-10-07 16:24:07
享元模式(Flyweight Pattern)主要用于减少创建的对象数量,并减少内存占用并提高性能。 这种类型的设计模式属于结构模式,因为该模式提供了减少对象计数的方法,从而改善应用的对象结构。
享元模式(Flyweight Pattern)尝试通过存储已经存在的类似对象以重用,并在找不到匹配的对象时创建新对象。我们将通过绘制不同位置的20
个圆圈来演示这种模式,但是这里只创建5
个对象。只有5
种颜色可用,因此color
属性用于检查已经存在的Circle
对象。
实现实例
在这个实例中,将创建一个Shape
接口和一个实现Shape
接口的具体类Circle
。在下一步中将定义一个工厂类ShapeFactory
。
ShapeFactory
有一个HashMap
的Circle
作为Circle
对象的颜色。每当一个请求向ShapeFactory
创建一个指定颜色的圆形时,它会检查HashMap
中的圆形对象,如果找到对象则返回这个对象,否则就会创建一个新对象然后存储在hashmap
中以供将来使用,并返回这个新创建的对象给客户端。
FlyWeightPatternDemo
这是一个演示类,将使用ShapeFactory
来获取一个Shape
对象。它将信息(红色/绿色/蓝色/黑色/白色)传递给ShapeFactory
以获得所需颜色的圆形。
享元模式的实现实例结构如下图中所示 -
最新文章
- CentOS7—HAProxy安装与配置
- SQL中EXISTS的用法
- Redis 配置文件
- POJ 1127 Jack Straws(计算几何)
- Spring第十篇—举例实现AOP
- 导入Excel的时候使用TransactionScope事务控制来进行数据
- Ubuntu 下无法Tab键自动补全功能解决办法
- Entity Framework 6.1-Database First介绍
- UVALive-4287 Proving Equivalences 有向图的强连通分量+缩点
- Eclipse选择rt.jar的源代码的位置
- SpringMVC静态文件(图片)访问+js访问 简单小例子
- Laravel使用Seeder自动填充数据
- 009一对一 主键关联映射_单向(one-to-one)
- java中new关键字和newInstance()方法的区别
- maven使用中的问题
- 【LeetCode刷题系列 - 003题】Longest Substring Without Repeating Characters
- 大众点评selfxss结合两个csrf变废为宝(已修复,故公开,不涉及真实参数)
- datetime字符串中含T
- 设计模式【PHP案例】
- CRC32 of Ether FCS with STM32
热门文章
- Problems occurred when invoking code from plug-in: ";org.eclipse.jface";.
- JS中的匿名函数、回调函数、匿名回调函数
- lambda 分组后的count
- C# 对象转JSON字符串
- JavaScript中正则使用
- ed-tue-robotics
- surpace pro 检测维修记录
- <;select multiple=";multiple";>; 数据回显
- bzoj1495 [NOI2006]网络收费 复杂度分析+树上背包
- Java类加载顺序练习题