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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 西地那非 中级黑马   /  2014-7-9 22:47  /  1615 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么是享元模式,是不是当某一类事物,出现的频率很大,然后找出其中的共性,封装为一个对象,共性为内部属性,而这一类事物的不同,则表现为外部属性,可通过方法也就是接口对这个不同的属性,来分别描述。可以简单这样理解吗

评分

参与人数 1技术分 +1 收起 理由
淡夜清风 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
享元模式就是采用一个共享来避免大量拥有相同内容对象的开销。
最常见的利用享元模式的就是String类型对象的创建:String类型的对象一旦被创造就不可改变;当两个String对象所包含的内容相同的时候,JVM只创建一个String对象对应这两个不同的对象引用。
可以简单的理解成你所说的,找找具体的例子,研究一下吧。

评分

参与人数 1技术分 +1 收起 理由
淡夜清风 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
举两个最常见的享元模式的例子,
1.Java中Integer封装类,对于范围在-128~127的int类型数,不是新创建一个对象,而是返回内存中已有的对象,对于不在此范围里的数则新创建一个对象。
2.在文本编辑器中。一个文本编辑器往往会提供很多种字体,而通常的做法就是将每一个字母做成一个享元对象。享元对象的内蕴状态就是这 个字母,而字母在文本中的位置和字模风格等其他信息则是外蕴状态。比如,字母a可能出现在文本的很多地方,虽然这些字母a的位置和字模风格不同,但是所有 这些地方使用的都是同一个字母对象。这样一来,字母对象就可以在整个系统中共享。
回复 使用道具 举报
都整起这个了 加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马