声明:本系列博客参考资料《大话设计模式》,作者程杰。
享元模式使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。
UML类图:
...
分类:
Web程序 时间:
2015-05-16 13:25:04
阅读次数:
136
UML类图的理解 参考资料:http://www.cnblogs.com/me115/p/4092632.html 设计模式 1)单例模式 2)观察者模式 3)模板方法模式 4)备忘录模式 5)享元模式 6)命令模式 7)工厂模式 8)适配器模式 9)原型模式 10)策略...
分类:
移动开发 时间:
2015-05-15 15:08:40
阅读次数:
222
享元模式的英文原文是:Use share to support large number of fine-grained objects efficiently.意思是:使用共享对象可以有效的支持大量的细粒度的对象。这里的共享对象指的是对象常驻内存,都可以使用;细粒度对象指的是,对象的很多属性相似或相同,可以提取出公共属性。享元对象能够做到共享的关键就是区分内部状态和外部状态,上边提到的公共属性就...
分类:
其他好文 时间:
2015-05-14 08:48:59
阅读次数:
145
在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。Java....
分类:
编程语言 时间:
2015-05-13 19:18:29
阅读次数:
224
Flyweight定义:避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类)。
为什么使用共享模式/享元模式
面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,还...
分类:
编程语言 时间:
2015-05-13 10:41:10
阅读次数:
150
一、概述
运用共享技术有效地支持大量细粒度的对象。
二、适用性
当都具备下列情况时,使用Flyweight模式:
1.一个应用程序使用了大量的对象。
2.完全由于使用大量的对象,造成很大的存储开销。
3.对象的大多数状态都可变为外部状态。
4.如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。...
分类:
编程语言 时间:
2015-05-08 00:02:49
阅读次数:
213
UML类图:
实例实现代码:
//用户
public class User
{
private string name;
public User(string name)
{
this.name = name;
}
public string Na...
分类:
其他好文 时间:
2015-05-07 14:41:58
阅读次数:
201
享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。FlyWeightFactory负责创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新对象,FlyWe...
分类:
其他好文 时间:
2015-05-06 10:29:55
阅读次数:
125
当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题。所以需要采用一个共享来避免大量拥有相同内容对象的开销。在Java中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在Java中字符串常量都是存在常量池中的,Java会确保一个字符串常量在常量池中只有一个拷贝。...
分类:
其他好文 时间:
2015-05-04 15:39:06
阅读次数:
125
享元模式Flyweight组合模式解决了对象时树形结构时的处理方式。当系统需要大量使用重复的对象,而这些对象要消耗很大的资源时就需要使用享元模式来解决。
单例模式,一个类只有一个唯一的对象。也就是说,不管new多少次,只需要创建这个类的一个对象,如果不采用单例模式,没new一次就会创建一个对象,这对于系统需要使用大量重复的对象,而这些对象需要消耗很大的资源时,是很不划算的,这时就需要使用享元模式。...
分类:
其他好文 时间:
2015-05-03 16:05:34
阅读次数:
112