单例模式的运用
(1)案例背景:
在实际的运用中,我们有时一个类不止需要产生一个对象,可能需要两个或者三个。在课上我们讲过,使用单例模式的思想可以实现多例模式,从而确保系统中某个类的对象只能存在有限个,请设计并实现代码,从而实现多例模式
(2)实现步骤:
- 由于本题的实现较为复杂,所以我们直接给出参考类图
- 根据类图,实现多例模式的代码
Multiton类如下:
//单例模式实现多例,实现3个 public class Multiton { private static ArrayList<Multiton> array = new ArrayList<>(); private Multiton() { } public static Multiton getInstance(){ if (array.size() < 3){ System.out.println("创建实例成功"); Multiton multiton = new Multiton(); array.add(multiton); return multiton; }else { System.out.println("不再创建更多实例"); return array.get(new Random().nextInt(array.size())); } } public int random() { int rand = (int) (Math.random()*3); return rand; } }
测试类如下
public class Client { public static void main(String[] args) { Multiton m1 = Multiton.getInstance(); Multiton m2 = Multiton.getInstance(); Multiton m3 = Multiton.getInstance(); Multiton m4 = Multiton.getInstance(); System.out.println("m1=m2"+(m1 == m2)); System.out.println("m2=m3"+(m2 == m3)); System.out.println("m3=m4"+(m3 == m4)); } }
(3)案例总结:
单例模式主要适用于:
- 系统只需要一个实例对象,或者因为资源消耗太大而只允许创建一个对象
- 客户调用类的单个实例只允许使用一个公共访问点,除了该公共访问点,不能通过其他途径访问该实例
- 根据不同的需求,也可以按照单例模式的思想来实现多例模式
本文来自博客园,作者:yuxin!!,转载请注明原文链接:https://www.cnblogs.com/yuxin6924/p/17278708.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!