工厂方法模式是一种设计模式,它定义了一个创建对象的接口,但让子类决定实例化哪一个类。这种模式使得一个类的实例化延迟到其子类。下面是一个基于你提供的神话传说“女娲娘娘挥动神绳造人”的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): 使用具体工厂来创建产品,并调用产品的接口。 通过这种方式,工厂方法模式将对象的创建与使用分离,提高了代码的灵活性和可扩展性。 [2024-10-17 17:08:31 | AI写代码神器 | 652点数解答]