享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式
1、如果一个系统中存在大量的相同或者相似的对象,由于这类对象的大量使用,会造成系统内存的耗费,可以使用享元模式来减少系统中对象的数量。
2、对象的大部分状态都可以外部化,可以将这些外部状态传入对象中。
利用map之类
public class ShapeFactory {
private static final HashMap<String, Shape> circleMap = new HashMap<>();
public static Shape getCircle(String color)
{
Circle circle = (Circle)circleMap.get(color);
if(circle == null) { circle = new Circle(color);
circleMap.put(color, circle); S
ystem.out.println("Creating circle of color : " + color); }
return circle; }
}