11.4

软件设计                  石家庄铁道大学信息学院

 

实验2:简单工厂模式

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

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

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

 

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

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

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

 

 

 

 

 

 

 

 

 

 

package er.nw;

import java.util.*;

public class Main {

    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);

        String str="";

        Nvwa nv=new Nvwa();

        Person person=null;

        do {

            System.out.println("输入W、M、R  让女娲造人,输入0结束");

            str=sc.next();

            person=nv.makePerson(str);

            if(person!=null) {

                person.make();

            }

        }while(!str.equalsIgnoreCase("0"));

    }

}

 

package er.nw;

public class Man implements Person{

    @Override

    public void make() {

        // TODO Auto-generated method stub

        System.out.println("女娲造了一个男人!!");

    }

}

 

 

package er.nw;

public class Nvwa {

    public Person makePerson(String type) {

        Person person = null;

        if (type.equalsIgnoreCase("W") || type.equalsIgnoreCase("w")) {

            person = new Woman();

        } else if (type.equalsIgnoreCase("M") || type.equalsIgnoreCase("m")) {

            person = new Man();

        } else if (type.equalsIgnoreCase("R") || type.equalsIgnoreCase("r")) {

            person = new Robot();

        } else {

            System.out.println("不能乱输嗷!");

            return null;

        }

        return person;

    }
}

 

 

 

package er.nw;

public interface Person {

    public void make();

}

 

 

package er.nw;

public class Robot implements Person{

    @Override

    public void make() {

        // TODO Auto-generated method stub

        System.out.println("女娲造了一个机器人??");

    }

}

 

 

package er.nw;

public class Woman implements Person{

    @Override

    public void make() {

        // TODO Auto-generated method stub

        System.out.println("女娲造了一个女人!!");

    }

}

 

 

 

 

posted @   秋渡晚枫  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示