设计模式代码实战-工厂模式

1、问题描述

小明家有两个工厂,一个用于生产圆形积木,一个用于生产方形积木,请你帮他设计一个积木工厂系统,记录积木生产的信息。
输入案例

3

Circle 1

Square 2

Circle 1

2、工厂模式

将产品的创建过程封装 在⼀个**⼯⼚类** 中,把创建对象的流程 集中在这个**⼯⼚类** ⾥⾯

看图

3、解决方案

java 复制代码
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int number=sc.nextInt();
        sc.nextLine();
        for(int i=0;i<number;i++){

            String s=sc.nextLine();

            String[] arr=s.split(" ");
            int count=Integer.parseInt(arr[1]);

            if(arr[0].equals("Circle")){
                Factory factory=new CircleFactory();
                Blocks circleInstance=factory.createBlocks();
                for(int j=0;j<count;j++){
                    circleInstance.draw();
                }

            }else if(arr[0].equals("Square")){
                Factory factory=new SquareFactory();
                Blocks squareInstance=factory.createBlocks();
                for(int j=0;j<count;j++) {
                    squareInstance.draw();
                }
            }

        }
    }
}

interface Blocks{
    void draw();
}
class CircleBlocks implements Blocks{

    @Override
    public void draw() {
        System.out.println("Circle Block");
    }
}
class SquareBlocks implements Blocks{

    @Override
    public void draw() {
        System.out.println("Square Block");
    }
}

interface Factory{
    Blocks createBlocks();
}

class CircleFactory implements Factory{
    public CircleBlocks createBlocks(){
        return new CircleBlocks();
    }
}

class SquareFactory implements Factory{
    public SquareBlocks createBlocks(){
        return new SquareBlocks();
    }
}
相关推荐
EmbedLinX3 小时前
嵌入式Linux C++常用设计模式
linux·c++·设计模式
短剑重铸之日4 小时前
《设计模式》第七篇:适配器模式
java·后端·设计模式·适配器模式
Andy Dennis6 小时前
一文漫谈设计模式之创建型模式(一)
java·开发语言·设计模式
thisiszdy9 小时前
<设计模式> Pimpl模式
设计模式
三水不滴9 小时前
23种设计模式
经验分享·笔记·设计模式
凯尔萨厮10 小时前
软件23种设计模式(学习笔记)
笔记·学习·设计模式
短剑重铸之日10 小时前
《设计模式》第八篇:三大类型之创建型模式
java·后端·设计模式·创建型设计模式
短剑重铸之日1 天前
《设计模式》第六篇:装饰器模式
java·后端·设计模式·装饰器模式
茶本无香1 天前
设计模式之十二:模板方法模式Spring应用与Java示例详解
java·设计模式·模板方法模式
wangmengxxw1 天前
设计模式 -详解
开发语言·javascript·设计模式