黑马程序员技术交流社区

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

作者: 西地那非    时间: 2014-7-9 22:47
标题: 什么是享元模式
什么是享元模式,是不是当某一类事物,出现的频率很大,然后找出其中的共性,封装为一个对象,共性为内部属性,而这一类事物的不同,则表现为外部属性,可通过方法也就是接口对这个不同的属性,来分别描述。可以简单这样理解吗

作者: blue_sky    时间: 2014-7-9 23:21
享元模式就是采用一个共享来避免大量拥有相同内容对象的开销。
最常见的利用享元模式的就是String类型对象的创建:String类型的对象一旦被创造就不可改变;当两个String对象所包含的内容相同的时候,JVM只创建一个String对象对应这两个不同的对象引用。
可以简单的理解成你所说的,找找具体的例子,研究一下吧。
作者: lancerjs    时间: 2014-7-10 02:21
举两个最常见的享元模式的例子,
1.Java中Integer封装类,对于范围在-128~127的int类型数,不是新创建一个对象,而是返回内存中已有的对象,对于不在此范围里的数则新创建一个对象。
2.在文本编辑器中。一个文本编辑器往往会提供很多种字体,而通常的做法就是将每一个字母做成一个享元对象。享元对象的内蕴状态就是这 个字母,而字母在文本中的位置和字模风格等其他信息则是外蕴状态。比如,字母a可能出现在文本的很多地方,虽然这些字母a的位置和字模风格不同,但是所有 这些地方使用的都是同一个字母对象。这样一来,字母对象就可以在整个系统中共享。
作者: 郑飞    时间: 2014-7-10 14:07
都整起这个了 加油




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