1. 单例模式的本质:
控制实例数目(目的节约资源)
2. 单例模式体现的一些思想:
(1)延迟装载(Lazy Load):懒汉式
(2)缓存:饿汉式
3. 单例模式的变形使用:
控制使用实例个数为3个(实例池):
1 public class Person { 2 //定义用来缓存数据的容器 3 private static Map map = new HashMap(); 4 //用来记录当前正在使用哪一个实例,初始化值为1 5 private static int num = 1; 6 //用来记录需要控制的实例的总数为3个 7 private static int count = 3; 8 9 //私有化Person构造方法 10 private Person() {} 11 public static Person getInstance() { 12 //1.到缓存里面查找需要使用的数据 13 Person person = (Person)map.get(num); 14 //1.1 如果找不到 15 if(person == null) { 16 //就新建一个数据(或者获取一个数据) 17 person = new Person(); 18 //然后把新的数据设置回到缓存中 19 map.put(num,person); 20 } 21 //每一次调用,就设置num加1; 22 num++; 23 //如果num超过需要控制的总数,那么把num设置为1,开始重复循环使用 24 if(num > count) { 25 num = 1; 26 } 27 //1.2 如果找到了就直接使用 28 return person; 29 } 30 }
时间: 2024-10-12 21:45:45