java设计模式之享元模式

本文深入探讨了享元模式在软件设计中的应用,旨在通过共享对象来降低内存消耗,同时确保信息在多个相似对象间的高效分享。通过实例解释了如何在诸如文档处理器等场景中实现字符表示的优化,显著减少了内存占用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 

 享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而

导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。
  典型的享元模式的例子为文书处理器中以图形结构来表示字符。一个做法是,每个字形有其字型外观, 字模 metrics, 和其它格式资讯,但这会使每个字符就耗用上千字节。取而代之的

是,每个字符参照到一个共享字形物件,此物件会被其它有共同特质的字符所分享;只有每个字符(文件中或页面中)的位置才需要另外储存。以下程式用来解释上述的文件例子。这个例子

用来解释享元模式利用只载立执行立即小任务所必需的资料,因而减少内存使用量。
例如:
Integer obj1=134;
integer obj2=134;
integer obj3=1;
integer obj4=1;
当将两个integer类型的对象比较时,由于自动拆装箱只保存一个字节的内容所以,当装箱后得到的数字在-128~127之间时System.out.println(obj3==obj4);返回的值是true,否则为false,

例如:System.out.println(obj1==obj2);。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值