举一个简单的例子:
<上海自来水来自海上>
假设每一个字都是一个对象,占10字节,那么安照我们以前的理解,这一句话9个对象就占用了90字节的内存空间.
如果使用了享元模式,实际在内存里的对象只有<上\海\自\来\水>这5个,仅仅占用50字节因为第一个<上>跟第
二个<上>是不是都拥有相同的属性?比如笔画,形状.而不同的属性就是所处的位置.
当一些小的对象有很多属性相同,我们就把他们编程同一个对象.
那些不同的属性我们把它变成方法的参数称之为外部状态.那些相同的属性称之为内部状态
总之享元模式作用在需要同一个对象多次出现的情况下.不必多次开辟空间,新建对象. |