使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man对象,如果传入参数“W”,则返回一个Woman对象,用Java语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个
时间: 2024-03-08 14:48:18 浏览: 188
Robot对象,该类有一个属性是robotType,表示机器人类型。可以使用简单工厂模式来实现这个场景。
首先定义一个Person接口,包含一个make()方法:
```java
public interface Person {
void make();
}
```
然后定义Man和Woman类实现Person接口:
```java
public class Man implements Person {
@Override
public void make() {
System.out.println("造出了一个男人");
}
}
public class Woman implements Person {
@Override
public void make() {
System.out.println("造出了一个女人");
}
}
```
接下来定义一个简单工厂类,根据传入的参数返回相应的Person对象:
```java
public class PersonFactory {
public static Person createPerson(String type) {
if ("M".equals(type)) {
return new Man();
} else if ("W".equals(type)) {
return new Woman();
} else if ("R".equals(type)) {
return new Robot("智能机器人");
} else {
throw new RuntimeException("传入的参数不正确");
}
}
}
```
最后定义一个Robot类实现Person接口:
```java
public class Robot implements Person {
private String robotType;
public Robot(String type) {
this.robotType = type;
}
@Override
public void make() {
System.out.println("造出了一个" + robotType);
}
}
```
现在我们可以使用简单工厂模式来创建不同类型的Person对象:
```java
public class Test {
public static void main(String[] args) {
Person man = PersonFactory.createPerson("M");
man.make();
Person woman = PersonFactory.createPerson("W");
woman.make();
Person robot = PersonFactory.createPerson("R");
robot.make();
}
}
```
输出结果为:
```
造出了一个男人
造出了一个女人
造出了一个智能机器人
```
阅读全文