A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张莹莹 中级黑马   /  2012-7-9 22:30  /  1294 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张莹莹 于 2012-7-24 10:45 编辑

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

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

享元例子

享元例子

3 个回复

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