23种设计模式-java

(未完成)flyWeight-模式

2018-06-08  本文已影响7人  oneWeekOneTopic

解决问题

大量相同(相似)小对象造成的内存占用问题。比如文本编辑器,如果对每个字符对生成一个对象(要涉及字符、字体等),将会是一个非常庞大的数据量。

flyWeight的本质是以时间换空间,类似于采用常量池的方式,将对象放大池子中,当需要使用该对象时,就建立一个引用,它可以极大提高系统的内存占用量,对java可以减少GC对性能的损耗。

应用场景

采用该模式,对对象有一定的要求:

原理图(UML)

9751DDE7-8C0D-4B54-8952-8CD1BE2301A9.png

示例

参考

https://en.wikipedia.org/wiki/Flyweight_pattern

上一篇下一篇

猜你喜欢

热点阅读