简单工厂模式

实验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());  // 输出: 机器人  

    }  

posted @   chrisrmas、  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示