题目描述
小明家有两个工厂,一个用于生产圆形积木,一个用于生产方形积木,请你帮他设计一个积木工厂系统,记录积木生产的信息。
输入描述
输入的第一行是一个整数 N(1 ≤ N ≤ 100),表示生产的次数。
接下来的 N 行,每行输入一个字符串和一个整数,字符串表示积木的类型。积木类型分为 “Circle” 和 “Square” 两种。整数表示该积木生产的数量
输出描述
对于每个积木,输出一行字符串表示该积木的信息。
输入示例
3
Circle 1
Square 2
Circle 1
输出示例
Circle Block
Square Block
Square Block
Circle Block
import java.util.Scanner;
public class Main{
public static void main (String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
while(n>0){ //这里的n是行数,即生产的次数。
String name=sc.next();//什么积木,即积木类型。
int num=sc.nextInt();//这里的num是该积木的生产数量
for(int i=0;i<num;i++){
if(name.equals("Circle")){
ShapeFactory shapeFactory = new CircleFactory();
shapeFactory.createFactory();
}else{
ShapeFactory shapeFactory = new SquareFactory();
shapeFactory.createFactory();
}
}
n--;
}
}
}
interface Shape{//抽象产品,定义了工厂的积木 生产的功能
void produce();
}
class Circle implements Shape{//具体产品
@Override
public void produce(){
System.out.println("Circle Block");
}
}
class Square implements Shape{
@Override
public void produce(){
System.out.println("Square Block");
}
}
interface ShapeFactory{//抽象工厂,用于创建产品对象
Shape createFactory();
}
class CircleFactory implements ShapeFactory{//具体工厂,创建了什么样子的工厂。返回具体的产品实例
@Override
public Shape createFactory(){
System.out.println("Circle Block");
return new Circle();
}
}
class SquareFactory implements ShapeFactory{
@Override
public Shape createFactory(){
System.out.println("Square Block");
return new Square();
}
}
ps: 题目来自卡哥卡码网