Java实现神话传说:女娲神绳造人背后的工厂方法模式揭秘
工厂方法模式是一种设计模式,它定义了一个创建对象的接口,但让子类决定实例化哪一个类。这种模式使得一个类的实例化延迟到其子类。下面是一个基于你提供的神话传说“女娲娘娘挥动神绳造人”的Java实现。 抽象产品: 人 ```java public abstract class Person { public abstract void introduce(); } ``` 具体产品: 男人 和 女人 ```java public class Man extends Person { @Override public void introduce() { System.out.println("我是男人"); } } public class Woman extends Person { @Override public void introduce() { System.out.println("我是女人"); } } ``` 抽象工厂: 女娲神绳 ```java public abstract class NuwaRope { public abstract Person createPerson(); } ``` 具体工厂: 阳绳 和 阴绳 ```java public class YangRope extends NuwaRope { @Override public Person createPerson() { return new Man(); } } public class YinRope extends NuwaRope { @Override public Person createPerson() { return new Woman(); } } ``` 用户: 玉皇大帝 ```java public class JadeEmperor { private NuwaRope rope; public JadeEmperor(NuwaRope rope) { this.rope = rope; } public void createPerson() { Person person = rope.createPerson(); person.introduce(); } } ``` 客户端代码 ```java public class Main { public static void main(String[] args) { // 创建阳绳和阴绳 NuwaRope yangRope = new YangRope(); NuwaRope yinRope = new YinRope(); // 玉皇大帝使用阳绳造人 JadeEmperor jadeEmperorYang = new JadeEmperor(yangRope); jadeEmperorYang.createPerson(); // 输出: 我是男人 // 玉皇大帝使用阴绳造人 JadeEmperor jadeEmperorYin = new JadeEmperor(yinRope); jadeEmperorYin.createPerson(); // 输出: 我是女人 } } ``` 解释 1. 抽象产品 (Person): 定义了所有具体产品的公共接口。 2. 具体产品 (Man, Woman): 实现了抽象产品的接口,提供了具体的实现。 3. 抽象工厂 (NuwaRope): 定义了创建产品的接口。 4. 具体工厂 (YangRope, YinRope): 实现了抽象工厂的接口,提供了具体的创建方法。 5. 用户 (JadeEmperor): 使用具体工厂来创建产品,并调用产品的接口。 通过这种方式,工厂方法模式将对象的创建与使用分离,提高了代码的灵活性和可扩展性。 ######[AI写代码神器 | 652点数解答 | 2024-10-17 17:08:31]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)409
- Java 实现计算机硬件模拟:从 PCI 设备到主板、计算机的启动与关闭(字节豆包 | 716点数解答 | 2024-12-08 23:38:38)328
- Java 代码:模拟计算机主板启动与关闭 PCI 设备全流程(字节豆包 | 637点数解答 | 2024-12-09 08:31:54)297
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)310
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1149
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)346
- Java 实战:Vehicle 类与 User 类实现机动车速度功率控制( | 968点数解答 | 2024-03-12 11:26:25)544
- Java:从接口设计到实现,打造输出“are you ok!”的程序实例 (字节豆包 | 176点数解答 | 2025-01-03 09:14:03)238
- Java 实战:动物类、接口与继承实现鸟儿吃虫和飞翔功能(字节豆包 | 183点数解答 | 2024-09-19 15:53:55)289
- Java 实战:动物类、接口与继承,实现鸟儿吃虫与飞翔功能(字节豆包 | 184点数解答 | 2024-09-19 16:45:48)310
- Java 实现 BankAccount 类:账户余额管理与测试全解析(字节豆包 | 420点数解答 | 2024-10-11 08:48:21)317
- Java 编程:实现教师与学生类的创建、继承及属性操作(字节豆包 | 745点数解答 | 2024-10-16 18:40:42)394