用静态内部类单例模式重构 TaskManager 类,模拟实现 Windows 任务管理器
好的,我们可以使用静态内部类单例模式来重构 `TaskManager` 类。静态内部类单例模式是一种既保证线程安全又延迟初始化的单例模式实现方式。以下是重构后的代码: ```java public class TaskManager { // 静态内部类,用于持有单例实例 private static class TaskManagerHolder { private static final TaskManager INSTANCE = new TaskManager(); } // 私有构造函数,防止外部实例化 private TaskManager() { // 初始化窗口 System.out.println("TaskManager initialized."); } // 公共静态方法,提供全局访问点 public static TaskManager getInstance() { return TaskManagerHolder.INSTANCE; } // 显示进程的方法 public void displayProcesses() { System.out.println("Displaying processes..."); // 这里可以添加显示进程的具体逻辑 } // 显示服务的方法 public void displayServices() { System.out.println("Displaying services..."); // 这里可以添加显示服务的具体逻辑 } // 其他成员方法 // ... } // 测试类 public class Main { public static void main(String[] args) { TaskManager taskManager = TaskManager.getInstance(); taskManager.displayProcesses(); taskManager.displayServices(); } } ``` 代码解释 1. 私有构造函数:`TaskManager` 类的构造函数是私有的,防止外部通过 `new` 关键字创建实例。 2. 静态内部类:`TaskManagerHolder` 是一个静态内部类,它包含一个 `TaskManager` 的静态实例 `INSTANCE`。由于静态内部类只有在第一次被加载时才会初始化,因此这种方式既保证了线程安全,又实现了延迟初始化。 3. 公共静态方法:`getInstance()` 方法提供了全局访问点,返回 `TaskManager` 的唯一实例。 4. 成员方法:`displayProcesses()` 和 `displayServices()` 是 `TaskManager` 类的成员方法,分别用于显示进程和服务。 通过这种方式,我们确保了 `TaskManager` 类在整个应用程序中只有一个实例,并且这个实例在需要时才被创建。 ######[AI写代码神器 | 470点数解答 | 2024-10-24 16:45:47]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- C语言贪心法:多机调度问题的算法设计与代码实现(阿里通义 | 665点数解答 | 2024-11-27 08:39:39)367
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)350
- Python 实现 DES 加密算法编程实验:从原理到单步调试全解析(字节豆包 | 4096点数解答 | 2025-11-09 22:06:30)89
- 洛谷乒乓球题解:11 分制与 21 分制比赛结果计算全攻略(DeepSeek | 675点数解答 | 2025-04-28 18:19:45)321
- C++ 模拟:助冒险者用神秘数字构建直角三角形,开发要点大揭秘! (DeepSeek | 156点数解答 | 2025-09-14 21:30:10)319
- P1007:小核桃数组变换难题,Python代码揭秘最终平方和!(字节豆包 | 416点数解答 | 2026-02-07 18:24:18)65
- P1007小核桃数组变换难题:C++代码求解最终两数平方和! (字节豆包 | 651点数解答 | 2026-02-07 18:25:02)67
- “天气之子”试炼:用代码破解天气预报成功天数之谜,复杂度分析揭秘!(字节豆包 | 797点数解答 | 2026-02-07 18:29:12)50
- 揭秘天气之子试炼:巧用算法计算天气预报成功天数(字节豆包 | 734点数解答 | 2026-02-07 18:30:34)44
- C++实现:根据给定参数打印栅栏图案(P1015禾木与栅栏)(字节豆包 | 160点数解答 | 2026-02-07 18:36:06)52
- Java 实现仿 Windows 资源管理器:文件管理器功能全解析与代码示例(字节豆包 | 623点数解答 | 2025-01-01 14:59:04)269