11.java设计模式(读书笔记)享元模式
2016-11-01 18:15
344 查看
参考:http://blog.csdn.net/jason0539/article/details/22908915
解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么如果要是每个字母都共享一个对象,那么就大大节约了资源。
在Flyweight模式中,由于要产生各种各样的对象,所以在Flyweight(享元)模式中常出现Factory模式。Flyweight的内部状态是用来共享的,Flyweight
factory负责维护一个对象存储池(Flyweight Pool)来存放内部状态的对象。Flyweight模式是一个提高程序效率和性能的模式,会大大加快程序的运行速度.应用场合很多。
所以享元模式有点单例模式的意思。
代码:
具体类:
![](http://img.blog.csdn.net/20161101181307156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
工厂类:
![](http://img.blog.csdn.net/20161101181318481?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
测试类:
![](http://img.blog.csdn.net/20161101181326200?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
输出:
![](http://img.blog.csdn.net/20161101181417313?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
享元模式和单例模式的区别:
享元模式可以理解成为一组共享对象的集合。
享元模式是一个类很多不同的对象,而单例模式一个类只有一个对象。
享元模式主要为了节省内存空间提升程序性能(避免大量new操作),而单例模式主要是出于共享的目的
解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么如果要是每个字母都共享一个对象,那么就大大节约了资源。
在Flyweight模式中,由于要产生各种各样的对象,所以在Flyweight(享元)模式中常出现Factory模式。Flyweight的内部状态是用来共享的,Flyweight
factory负责维护一个对象存储池(Flyweight Pool)来存放内部状态的对象。Flyweight模式是一个提高程序效率和性能的模式,会大大加快程序的运行速度.应用场合很多。
所以享元模式有点单例模式的意思。
代码:
具体类:
工厂类:
测试类:
输出:
享元模式和单例模式的区别:
享元模式可以理解成为一组共享对象的集合。
享元模式是一个类很多不同的对象,而单例模式一个类只有一个对象。
享元模式主要为了节省内存空间提升程序性能(避免大量new操作),而单例模式主要是出于共享的目的
相关文章推荐
- 重学java23种设计模式(11)享元模式
- java设计模式之享元模式(11)
- Java程序性能优化 读书笔记(四)设计模式:享元模式
- Java设计模式11——享元模式
- Java设计模式之十一(享元模式)
- Java设计模式(11) —— 原型
- Java设计模式笔记之享元模式
- JAVA设计模式之享元模式
- 读书笔记-Java设计模式
- java设计模式---享元模式
- java设计模式———享元模式
- 设计模式读书笔记之享元模式(Flyweight pattern)
- java 设计模式 学习笔记(11) 建造者模式
- java设计模式之享元模式
- 读书笔记-Java设计模式
- java设计模式---享元模式
- java设计模式之享元模式Flyweight
- Java读书笔记12 事件处理基础 Observer设计模式
- Java设计模式二十二:享元模式(Flyweight)
- java设计模式——享元模式