Java 简单工厂模式模拟:按不同理由解释迟到原因
以下是一个使用 Java 实现的简单工厂模式来处理不同迟到理由的示例代码: ```java public class LateReasonFactory { public static LateReason createLateReason(String reason) { if (reason.equalsIgnoreCase("去厕所")) { return new ToiletReason(); } else if (reason.equalsIgnoreCase("在路上")) { return new OnTheRoadReason(); } else if (reason.equalsIgnoreCase("回家")) { return new HomeReason(); } else { throw new IllegalArgumentException("无效的迟到理由"); } } public static void main(String[] args) { LateReason reason = LateReasonFactory.createLateReason("去厕所"); // 在这里对获取到的迟到理由对象进行相应的操作 } interface LateReason { void explain(); } static class ToiletReason implements LateReason { @Override public void explain() { System.out.println("因为去厕所迟到了"); } } static class OnTheRoadReason implements LateReason { @Override public void explain() { System.out.println("因为在路上迟到了"); } } static class HomeReason implements LateReason { @Override public void explain() { System.out.println("因为回家迟到了"); } } } ``` 在上述代码中,定义了一个`LateReasonFactory`类,其中的`createLateReason`方法根据传入的不同理由字符串创建相应的具体`LateReason`对象。`LateReason`是一个接口,不同的具体理由类实现了这个接口来提供各自的解释逻辑。 ######[AI写代码神器 | 373点数解答 | 2024-10-17 17:24:05]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)432
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)330
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1223
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)70
- 深入探究:n 位格雷码中编号 k 二进制串的求解算法与实现(DeepSeek | 726点数解答 | 2026-01-13 12:31:37)71
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)287
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)286
- 求解 1 至 n 内第 k 大孤独数:质数与余数的巧妙探寻(字节豆包 | 298点数解答 | 2025-11-10 20:01:57)187
- 巧判小朋友同桌意愿:满足需求还是无解难题?(字节豆包 | 599点数解答 | 2025-11-16 20:06:12)88
- 巧用代码判断:能否让 2n 个小朋友都拥有满意同桌?(字节豆包 | 445点数解答 | 2025-11-16 20:07:02)95
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)339
- 洛谷乒乓球题解:11 分制与 21 分制比赛结果计算全攻略(DeepSeek | 675点数解答 | 2025-04-28 18:19:45)320