首页 > 其他分享 >实验2:简单工厂模式

实验2:简单工厂模式

时间:2022-10-31 14:45:30浏览次数:53  
标签:Woman java void System 模式 工厂 Person 实验 public

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

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

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

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

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

实验要求:

1.  画出对应的类图;

 

 Man.java

public class Man implements Person{
public Man() {
        
    }
    public void make(){
        
        System.out.print("生产男人");
        
    }

}

Nvwa.java

public class Nvwa {
    
    public Nvwa() {
        
    }

    public static  Person Personjudge(String arg ) {
        //判断参数,再选择调用哪个类
        if(arg.equalsIgnoreCase("M"))
        {
            return new Man();
        }else if(arg.equalsIgnoreCase("W"))
        {
            return new Woman();
        }else if(arg.equalsIgnoreCase("R"))
        {
            return new Robot();
        }else
        {
            return null;
        }
    }

}

Person.java

public interface Person {
    public void make();

}

Robot.java

public class Robot implements Person{
    public Robot() {
    }
    
    public void make(){
        
        System.out.print("生产机器人");
        
    }

}

test.java

import java.util.Scanner;

public class test {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
          System.out.print("请输入参数:");
          String s = scan.nextLine();
          
        try{
            Person p = Nvwa.Personjudge(s);
            p.make();
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
        scan.close();
    }

}

Woman.java

public class Woman implements Person {
    public Woman() {
    }
    
    public void make() {
        
        System.out.print("生产女人");
        
    }

}

运行截图

 

 

 

标签:Woman,java,void,System,模式,工厂,Person,实验,public
From: https://www.cnblogs.com/15132949hao/p/16844195.html

相关文章

  • 实验二 逻辑回归算法实验
    【实验目的】理解逻辑回归算法原理,掌握逻辑回归算法框架;理解逻辑回归的sigmoid函数;理解逻辑回归的损失函数;针对特定应用场景及数据,能应用逻辑回归算法解决实际分类问题。......
  • JAVA面试官:请说说如何设计线程安全的单例模式?
    单例模式已经被讲烂了,这边复习一下双重检测锁下的线程安全的单例模式。(单例模式复习顶配)publicclassMySingleton{privatestaticvolatileMySingletonmySingleto......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • js异步编程的三种模式
    写在前面javascript语言的执行环境是"单线程"(singlethread),就是指一次只能完成一件任务。如果有多个任务,就必须排队,等前面一个任务完成,再执行后面一个任务,以此类推。......
  • vue开发环境,可以配置,域名访问模式嘛,这样线上项目就可以不用打包来访问了
    看了很多博文,本地也配置了,域名需要结合端口号来访问(多个项目也不可能都是80的,所以还是需要端口号的)不需要nginx配置/etc/host域名指向127.0.0.1https://www.cnblogs......
  • 设计模式之外观模式
    概述根据单一职责原则,在软件中将一个系统划分为若干个子系统(Subsystem)有利于降低整个系统的复杂性,一个常见的设计目标是使客户类与子系统之间的通信和相互依赖关系达到......
  • 决策树实验
    #一、【实验目的】#理解决策树算法原理,掌握决策树算法框架;#理解决策树学习算法的特征选择、树的生成和树的剪枝;#能根据不同的数据类型,选择不同的决策树算法;#针对特定应......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境下载虚拟机软件OracleVisualB......