菜鸟教程链接:享元模式
概念
享元模式类似于工厂+缓存的模式,当创建对象的时候,通过条件判断缓存中有没有对应对象,如果有直接取出缓存,如果没有则新建并放入缓存中,再返回。
优缺点
优点:
- 创建对象时利用了缓存,提升了响应速度。
- 节约了资源。
缺点:
- 提升了系统的复杂度。
适用场景
缓存场景,例如校验token场景,通过用户ID获取用户信息的地方。任何系统大量用到重复或相似对象,并有确定的条件区分的地方,都可以用的该设计模式。
示例代码
import java.util.HashMap;
public class ShapeFactory {
private static final HashMap<String, Shape> circleMap = new HashMap<>();
// color可视为shape对象的key值,通过该值拿取缓存。
public static Shape getCircle(String color) {
Circle circle = (Circle)circleMap.get(color);
if(circle == null) {
circle = new Circle(color);
circleMap.put(color, circle);
System.out.println("Creating circle of color : " + color);
}
return circle;
}
}
本文介绍了享元模式的概念,阐述其工厂加缓存的设计,探讨了优点如快速响应和资源节省,以及可能增加的系统复杂性。适用于大量重复对象和区分条件的场景,如校验token和用户信息获取。通过ShapeFactory示例展示了模式应用。
1458

被折叠的 条评论
为什么被折叠?



