10.21

实验2:简单工厂模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解简单工厂模式的动机,掌握该模式的结构;

2、能够利用简单工厂模式解决实际问题

 

[实验任务一]:女娲造人

使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

1.类图

 

 

2.

public class Main {
    //抽象产品类:Person接口
    public interface Person {
        void create();
    }
    //具体产品类:Man(男人)类
    public static class Man implements Person{
        public Man() {
        }

        @Override
        public void create() {
            System.out.println("造男人");
        }
    }
    //具体产品类:Woman(女人)类
    public static class Woman implements Person{
        public Woman() {
        }

        @Override
        public void create() {
            System.out.println("造女人");
        }
    }
    //具体产品类:Robot(机器人)类
    public static class Robot implements Person{
        public Robot() {
        }

        @Override
        public void create() {
            System.out.println("造机器人");
        }
    }
    //工厂类:Nvwa(女娲)类
    public class Nvwa {
        public static Person getPerson(String person) throws Exception {
            if (person.equalsIgnoreCase("M")){
                return new Man();
            }else if (person.equalsIgnoreCase("W")){
                return new Woman();
            }else if (person.equalsIgnoreCase("R")){
                return new Robot();
            }else {
                throw new Exception("对不起,不能造该类人");
            }
        }
    }





}

public class Test {
    public static void main(String[] args) throws Exception {
        Scanner type = new Scanner(System.in);
        System.out.print("请输入参数: ");
        String s = type.nextLine();
        Main.Person person = Main.Nvwa.getPerson(s);
        person.create();
        type.close();
    }
}

3.运行测试

 

 

 

posted @ 2024-10-21 17:23  umiQa  阅读(3)  评论(0编辑  收藏  举报