黑马程序员技术交流社区

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

作者: 张莹莹    时间: 2012-7-9 22:30
标题: 享元模式
本帖最后由 张莹莹 于 2012-7-24 10:45 编辑

今天看老师视频,看到享元模式,老师讲说,有很多小的对象,他们有很多共同的属性,因此将他们变成一个对象,不同的属性变成方法的参数。我还是不太明白,有谁可以讲下应用的场合和具体实例?
我试了一下确实是这样的(图片)但还是不是很明白原理。

flyWeight.png (17.38 KB, 下载次数: 59)

享元例子

享元例子

作者: 万宝东    时间: 2012-7-9 22:40
关于享元模式楼主可以看看这个帖子
http://bbs.itheima.com/forum.php ... ;pre_pos=3&ext=
里面说的很详细,也有具体实例
作者: 周恺    时间: 2012-7-11 04:28
举一个简单的例子:
<上海自来水来自海上>
假设每一个字都是一个对象,占10字节,那么安照我们以前的理解,这一句话9个对象就占用了90字节的内存空间.
如果使用了享元模式,实际在内存里的对象只有<上\海\自\来\水>这5个,仅仅占用50字节因为第一个<上>跟第
二个<上>是不是都拥有相同的属性?比如笔画,形状.而不同的属性就是所处的位置.
当一些小的对象有很多属性相同,我们就把他们编程同一个对象.
那些不同的属性我们把它变成方法的参数称之为外部状态.那些相同的属性称之为内部状态
总之享元模式作用在需要同一个对象多次出现的情况下.不必多次开辟空间,新建对象.
作者: 陆强强    时间: 2012-7-11 08:31
享元模式就是超市模式,你想要买什么拿个篮子去装,最后收银那儿付一下钱就好。节省资源。
普通模式是上门服务,你要什么人家会送来,但一个客户就要配一个服务员。对资源的利用很低。




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