2021-08-19 享元模式

33 阅读1分钟

项目中经常用的是策略模式以及责任链模式,然后今天说下享元模式;

策略模式: 入参的大体相同,根据入参的的区别选择不同的处理逻辑;
责任链模式: 对入参都是同一个处理流程的一种处理模式;
享元模式: 享元,即共享元数据;为了减少对象的创建;

享元模式: 使用场景,需要频繁的创建几个的对象消耗内存巨大,为了避免此种问题;

如下:
一个工厂

public class XYFactory {

    Map<Integer, User> map = new HashMap<>();

    public User getUser(Integer num) {
        User user = map.get(num);
        if (user == null) {
            user = new User();
            map.put(RandomUtil.randomInt(9), user);
        }

        return user;
    }

}

一个测试类

public static void main(String[] args) {

        XYFactory xyFactory = new XYFactory();

        for (int i = 0; i < 100; i++) {
            User user = xyFactory.getUser(RandomUtil.randomInt(9));
            System.out.println(user);
        }
}

思想大概是,创建过得对象放入缓存中,下次去缓存中拿取,如果取到了那么直接用;
没拿取到,创建一个对象,然后放入缓存中,返回这个对象;

本文转自 jimolvxing.blog.csdn.net/article/det…,如有侵权,请联系删除。