简单工厂模式
实验2:简单工厂模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解简单工厂模式的动机,掌握该模式的结构;
2、能够利用简单工厂模式解决实际问题。
[实验任务一]:女娲造人
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。
实验要求:
1. 画出对应的类图;
2. 提交源代码;
// 定义基本的Person类
abstract class Person {
public abstract String getName();
}
// Man类,继承Person
class Man extends Person {
private String name;
public Man() {
this.name = "男";
}
@Override
public String getName() {
return name;
}
}
// Woman类,继承Person
class Woman extends Person {
private String name;
public Woman() {
this.name = "女";
}
@Override
public String getName() {
return name;
}
}
// Robot类,继承Person
class Robot extends Person {
private String name;
public Robot() {
this.name = "机器人";
}
@Override
public String getName() {
return name;
}
}
// 简单工厂类
class PersonFactory {
public static Person createPerson(String personType) {
if (personType.equals("M")) {
return new Man();
} else if (personType.equals("W")) {
return new Woman();
} else if (personType.equals("R")) {
return new Robot();
} else {
return null;
}
}
}
// 测试代码
public class NvwaTest {
public static void main(String[] args) {
Person man = PersonFactory.createPerson("M");
Person woman = PersonFactory.createPerson("W");
Person robot = PersonFactory.createPerson("R");
// 显示结果
System.out.println(man.getName()); // 输出: 男
System.out.println(woman.getName()); // 输出: 女
System.out.println(robot.getName()); // 输出: 机器人
}
}