享元模式
定义
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。它提供了减少对象数量从而改善应用所需的对象结构的方式。
享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。
类图
Flyweight(轻量级)
按照通常方式编写程序会导致程序变重,所以如果能够共享示例会比较好,而Flyweight表示的就是那些实例会被共享的类。
FlyweightFactory(轻量级工厂)
FlyweightFactory是生成Flyweight的工厂,在工厂中生成Flyweight可以实现共享实例
Client(请求者)
使用FlyweightFactory来生成Flyweight。
示例
类图
BigChar
1 | public class BigChar { |
BigCharFactory
1 | public class BigCharFactory { |
BigString
1 | public class BigString { |
Main
1 | public class Main { |
big-.txt
1 | ................ |
big0.txt
1 | ....######...... |
big1.txt
1 | ......##........ |
big2.txt
1 | ....######...... |
big3.txt
1 | ....######...... |
big4.txt
1 | ........##...... |
big5.txt
1 | ..##########.... |
big6.txt
1 | ....######...... |
big7.txt
1 | ..##########.... |
big8.txt
1 | ....######...... |
big9.txt
1 | ....######...... |