酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

用静态内部类单例模式重构 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]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]