很多对象因为具有很多相同的属性,就将其变成一个对象,这些相同属性,称为对象的内部状态。
还有一些不同的属性,将他们抽成对象的方法,称为外部状态。
如Integer对象,将int型基本数据类型转换为Integer对象时,如果该数据时一个字节的数,那么创建好这个对象后会放在常量池中,后面创建同一数字的对象时,会从常量池里拿,而不会新创建对象。这样做可以节约内存空间。
windows窗口中的图标,26个字母,等都是享元模式的运用。
而图标的名称,字母的位置则是对象的方法。
例如:
Integer i1=127;
Integer i2=127;
System.out.println(i1==i2);//true
Integer i3=128;
Integer i4=128;
System.out.println(i3==i4);//false