享元模式
运用共享技术有效地支持大量粒度的对象
享元模式
当一个程序,多个用户对于同一个程序拥有不同需求,但是他们之间存在着相似的功能,那么随着用户的增加,在程序中相同功能模块可能产生多个相同的对象,这无疑是很耗费存储空间的,所以为了节约存储空间,优化代码,我们可以使用享元模式(如,淘宝网站,功能相似,但对于不同的用户,可能要有些不同的个性要求,但是他们之间存在着很多相似的功能模块,所以我们可以使用享元模式,事项相似功能的代码共享)
享元模式的内部状态和外部状态
在享元对象内部并且不会随环境改变而改变的共享部分,称之为享元对象的内部状态,而随着环境改变的,不可以公共享的状态就是外部状态了,内部状态是不变的部分,外部状态是变的部分(多个变化的外部状态,可能拥有相同的内部状态)
什么时候使用享元模式
如果一个应用程序使用了大量的对象,而大量的这些对象造成了很大的存储开销时就应该考虑使用,还有就是对象的大多数状态是外部状态,如果删除对象的外部状态,那么可以用相对较少的共享对象取代多组对象,此时可以考虑使用享元模式
原文地址:http://6250716.blog.51cto.com/6240716/1603944