黑马程序员技术交流社区

标题: 享元模式 [打印本页]

作者: 李计伟    时间: 2012-11-6 13:54
标题: 享元模式
本帖最后由 李计伟 于 2012-11-6 15:11 编辑

Ingeter i1 =2;
Ingeter i2=2;
System.out.println(i1==i2);
结果是true.
Ingeter i1 =146;
Ingeter i2=146;
System.out.println(i1==i2);
结果是false.

这是一个享元模式。
享元模式特点:把很多对象相同的属性变成一个对象(内部状态),不同的属性变成方法的参数(外部状态).
看了张孝祥老师的高新技术视频知道了享元模式的概念,那享元模式什么时候用呢?

作者: 徐强    时间: 2012-11-6 14:04
享元模式优点就在于它能够大幅度的降低内存中对象的数量;而为了做到这一步也带来了它的缺点:它使得系统逻辑复杂化,而且在一定程度上外蕴状态影响了系统的速度。
所以一定要切记使用享元模式的条件:
1)        系统中有大量的对象,他们使系统的效率降低。
2)        这些对象的状态可以分离出所需要的内外两部分。
外蕴状态和内蕴状态的划分以及两者关系的对应也是非常值得重视的。只有将内外划分妥当才能使内蕴状态发挥它应有的作用;如果划分失误,在最糟糕的情况下系统中的对象是一个也不会减少的!两者的对应关系的维护和查找也是要花费一定的空间(当然这个比起不使用共享对象要小得多)和时间的,可以说享元模式就是使用时间来换取空间的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2