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

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();
    }
}
相关推荐
BD_Marathon1 天前
设计模式——合成复用原则
设计模式·合成复用原则
书院门前细致的苹果1 天前
设计模式大全:单例、工厂模式、策略模式、责任链模式
设计模式·责任链模式·策略模式
BD_Marathon2 天前
设计模式——依赖倒转原则
java·开发语言·设计模式
BD_Marathon2 天前
设计模式——里氏替换原则
java·设计模式·里氏替换原则
jmxwzy2 天前
设计模式总结
设计模式
J_liaty2 天前
23种设计模式一代理模式
设计模式·代理模式
苏渡苇3 天前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·设计模式·学习方法·责任链模式
短剑重铸之日3 天前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
feasibility.3 天前
AI 编程助手进阶指南:从 Claude Code 到 OpenCode 的工程化经验总结
人工智能·经验分享·设计模式·自动化·agi·skills·opencode
BD_Marathon3 天前
七大设计原则介绍
设计模式