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

Java 简单工厂模式:模拟根据不同理由生成迟到原因

简单工厂模式是一种用于创建对象的设计模式,它允许在不指定具体类的情况下创建对象。在这个例子中,我们将使用简单工厂模式来根据不同的迟到理由创建相应的迟到理由对象。下面是一个简单的实现: 1. 定义迟到理由接口 首先,我们定义一个迟到理由的接口 `LateReason`,所有具体的迟到理由类都将实现这个接口。 ```java public interface LateReason { String getReason(); } ``` 2. 实现具体的迟到理由类 接下来,我们实现几个具体的迟到理由类,每个类都实现了 `LateReason` 接口。 ```java public class BathroomLateReason implements LateReason { @Override public String getReason() { return "去厕所"; } } public class OnTheWayLateReason implements LateReason { @Override public String getReason() { return "在路上"; } } public class AtHomeLateReason implements LateReason { @Override public String getReason() { return "回家"; } } ``` 3. 创建简单工厂类 现在,我们创建一个简单工厂类 `LateReasonFactory`,它根据传入的参数创建相应的迟到理由对象。 ```java public class LateReasonFactory { public static LateReason createLateReason(String reasonType) { if (reasonType == null || reasonType.isEmpty()) { return null; } switch (reasonType) { case "bathroom": return new BathroomLateReason(); case "onTheWay": return new OnTheWayLateReason(); case "atHome": return new AtHomeLateReason(); default: return null; } } } ``` 4. 使用简单工厂 我们在主程序中使用简单工厂来创建迟到理由对象,并获取具体的迟到理由。 ```java public class Main { public static void main(String[] args) { // 创建迟到理由对象 LateReason lateReason1 = LateReasonFactory.createLateReason("bathroom"); LateReason lateReason2 = LateReasonFactory.createLateReason("onTheWay"); LateReason lateReason3 = LateReasonFactory.createLateReason("atHome"); // 获取并打印迟到理由 if (lateReason1 != null) { System.out.println("迟到理由: " + lateReason1.getReason()); } if (lateReason2 != null) { System.out.println("迟到理由: " + lateReason2.getReason()); } if (lateReason3 != null) { System.out.println("迟到理由: " + lateReason3.getReason()); } } } ``` 运行结果 运行上述代码,输出将会是: ``` 迟到理由: 去厕所 迟到理由: 在路上 迟到理由: 回家 ``` 通过简单工厂模式,我们可以根据不同的参数创建不同的对象,而不需要在客户端代码中直接实例化这些对象。这种方式使得代码更加灵活和可维护。 ######[AI写代码神器 | 642点数解答 | 2024-10-17 17:24:53]

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