简单工厂模式
实验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()); // 输出: 机器人
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)