design_model(11)flyweight

Posted gg128

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了design_model(11)flyweight相关的知识,希望对你有一定的参考价值。

1.享元模式//假如已经有了这么对象就是用这个对象,没有就创建这个对象,例如String等。

2.实例

public class Color {
    private  String  color;

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}
    
}

public class FlyWeight {
	private Map<String, Color> colors = new HashMap<>();

	public Color getColor(String str) {
		if (colors.containsKey(str)) {
			return colors.get(str);
		} else {
			Color color = new Color();
			colors.put(str, color);
			return color;
		}
	}
}

public class Client {
	public static void main(String[] args) {
		FlyWeight flyWeight = new FlyWeight();
		Color color = flyWeight.getColor("红色");
		Color color2 = flyWeight.getColor("红色");
		System.out.println(color == color2);// true
	}
}

 

以上是关于design_model(11)flyweight的主要内容,如果未能解决你的问题,请参考以下文章

design_model(19)memento

design_model(16)template

11-享元(Flyweight)模式Ruby实现

design_model(18)observe

design_model(24)分类与备注

JAVA SCRIPT设计模式--结构型--设计模式之FlyWeight享元模式(11)