首页 > 其他分享 >简单工厂模式

简单工厂模式

时间:2023-11-30 09:24:42浏览次数:34  
标签:People System 模式 工厂 简单 println simpleFactory public out

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

 

实验2:简单工厂模式

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

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

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

 

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

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

实验要求:

1. 画出对应的类图;

 

 

2. 提交源代码;

代码:

Client:

package simpleFactory;

import java.util.Scanner;

public class Client {

    public static void main(String[] args) {
        System.out.println("男人:M  女人:W  机器人:R");
        System.out.print("请输入要制作的人:");

        Scanner sc = new Scanner(System.in);
        String type = sc.nextLine();
        try {
            People people;
            people = Factory.peopleMake(type);
            people.makePeople();

        }catch (Exception e){
            System.out.println(e.getMessage());
        }
    }
}

Factory:

package simpleFactory;

public class Factory {
    public static People peopleMake(String brand) throws Exception {

        // 进行比较,忽略大小写
        if(brand.equalsIgnoreCase("M"))
        {
            System.out.println("开始生产男人");
            return new Man();
        } else if (brand.equalsIgnoreCase("W")) {
            System.out.println("开始生产女人");
            return new Woman();
        }else if (brand.equalsIgnoreCase("R")) {
            System.out.println("开始生产机器人");
            return new Robot();
        }else {
            throw new Exception("生产不了");
        }
    }
}

 

Man:

package simpleFactory;

public class Man extends People{
    @Override
    public void makePeople() {
        System.out.println("造了一个男人");
    }
}

 

People:

package simpleFactory;

public abstract class People {
    public abstract void makePeople();
}

 

Robot:

package simpleFactory;

public class Robot extends People{
    @Override
    public void makePeople() {
        System.out.println("造了一个机器人");
    }
}

 

Woman:

package simpleFactory;

public class Woman extends People {
    @Override
    public void makePeople() {
        System.out.println("造了一个女人");
    }
}

运行结果:

 

 

3.注意编程规范。

标签:People,System,模式,工厂,简单,println,simpleFactory,public,out
From: https://www.cnblogs.com/JIANGzihao0222/p/17866497.html

相关文章

  • 工厂方法模式
    软件设计                 石家庄铁道大学信息学院 实验3:工厂方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解工厂方法模式的动机,掌握该模式的结构;2、能够利用工厂方法模式解决实际问题。 [实验任务一]:加密算法目前常用的加密......
  • 抽象工厂模式
    软件设计                 石家庄铁道大学信息学院 实验4:抽象工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解抽象工厂模式的动机,掌握该模式的结构;2、能够利用抽象工厂模式解决实际问题。 [实验任务一]:人与肤色使用抽象工厂模......
  • 建造者模式
    软件设计                 石家庄铁道大学信息学院 实验5:建造者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解建造者模式的动机,掌握该模式的结构;2、能够利用建造者模式解决实际问题。 [实验任务一]:计算机组装使用建造者模式,完成......
  • 命令模式
    [实验任务一]:多次撤销和重复的命令模式某系统需要提供一个命令集合(注:可以使用链表,栈等集合对象实现),用于存储一系列命令对象,并通过该命令集合实现多次undo()和redo()操作,可以使用加法运算来模拟实现。1. 提交类图;2.提交源代码;#include<iostream>#include<stack>usingn......
  • 适配器模式
    1模式动机在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。如何应对这种“迁移的变化”?如何既能利用现有对象(老接口)的良好实现,同时又能满足新的应用环境所要求的接口?Adapter模式主要应用于“......
  • 【Vulnhub 靶场】【Coffee Addicts: 1】【简单-中等】【20210520】
    1、环境介绍靶场介绍:https://www.vulnhub.com/entry/coffee-addicts-1,699/靶场下载:https://download.vulnhub.com/coffeeaddicts/coffeeaddicts.ova靶场难度:简单-中等发布日期:2021年5月20日文件大小:1.3GB靶场作者:BadByte靶场描述:我们的咖啡店被黑客入侵了!!你能修复......
  • 黑客玩具入门——2、Kali常用命令与简单工具
    一、Linux常用命令首先,我们启动kali系统,然后点击这里的命令行工具。就可以使用下面学习的命令了,另外,如果你有过计算机基础,那么Mac的terminal和Git的gitbash,都是可以练习大部分的linux命令的。下面我们就学习一些入门的基础命令sudo,系统管理者的身份执行指令,也就是说,经由sudo......
  • 实验6:原型模式
    2.提交源代码(用C++完成);3.注意编程规范。#include<iostream> classVector{private:    int*data;//指向向量数据的指针    intsize;//向量的长度 public:    //构造函数    Vector(intsize){        this->size=size;   ......
  • 实验7:单例模式
     本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;2.提交源代码;3.注......
  • 实验8:适配器模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图;2.提交源代码;3.注意编......