设计模式,用Java写出,用工厂方法模式神话传说:女娲娘娘挥动神绳造人,挥动阴绳造出女人,挥动阳绳造出男人。 1.抽象产品:人 2.具体产品: ①男人 ②女人 3.抽象工厂:女娲神绳 4.具体工厂: ①阳绳 ②阴绳 5.用户:玉皇大帝
时间: 2024-10-12 13:12:51 浏览: 27
设计模式是一种解决常见软件设计问题的最佳实践,它提供了一种结构化的解决方案。工厂方法模式在这种情景下可以表现为以下Java实现:
```java
// 抽象产品(人)
interface Person {
void introduce();
}
// 具体产品(男人)
class Man implements Person {
@Override
public void introduce() {
System.out.println("我是男人,由阳绳创造而来。");
}
}
// 具体产品(女人)
class Woman implements Person {
@Override
public void introduce() {
System.out.println("我是女人,由阴绳创造而来。");
}
}
// 抽象工厂(女娲神绳)
abstract class NiuWeaRopeFactory {
abstract Person createPerson(String type);
}
// 具体工厂(阳绳、阴绳)
class YangRope extends NiuWeaRopeFactory {
@Override
public Person createPerson(String type) {
if ("阳".equals(type)) {
return new Man();
} else {
throw new IllegalArgumentException("阳绳只能造男");
}
}
}
class YinRope extends NiuWeaRopeFactory {
@Override
public Person createPerson(String type) {
if ("阴".equals(type)) {
return new Woman();
} else {
throw new IllegalArgumentException("阴绳只能造女");
}
}
}
// 用户(玉皇大帝)
class JadeEmperor {
public static void main(String[] args) {
NiuWeaRopeFactory factory = new YangRope(); // 或 YinRope
Person createdByYin = factory.createPerson("阴"); // 创建女人
createdByYin.introduce();
factory = new YangRope(); // 变换工厂
Person createdByYang = factory.createPerson("阳"); // 创建男人
createdByYang.introduce();
}
}
```
在这个例子中,玉皇大帝作为用户通过女娲神绳工厂(阳绳或阴绳)创建男性和女性。这种模式使得增加新的产品(比如其他神话人物)只需添加一个新的具体工厂类,并保持客户端对人这个抽象产品的依赖不变。
阅读全文