当前位置: 首页 > news >正文

[设计模式之抽象工厂模式—— 家具工厂]

题目:

小明家新开了两个工厂用来生产家具,一个生产现代风格的沙发和椅子,一个生产古典风格的沙发和椅子,现在工厂收到了一笔订单,请你帮他设计一个系统,描述订单需要生产家具的信息。

输入描述
输入的第一行是一个整数 N(1 ≤ N ≤ 100),表示订单的数量。

接下来的 N 行,每行输入一个字符串,字符串表示家具的类型。家具类型分为 “modern” 和 “classical” 两种。

输出描述
对于每笔订单,输出字符串表示该订单需要生产家具的信息。

modern订单会输出下面两行字符串

modern chair
modern sofa

classical订单会输出下面两行字符串

classical chair
classical soft


输入示例
3
modern
classical
modern

输出示例
modern chair
modern sofa
classical chair
classical sofa
modern chair
modern sofa

import java.util.Scanner;public class Main{public static void main(String[] args){Scanner  sc= new Scanner(System.in);int n=sc.nextInt();for(int i=0;i<n;i++){String name=sc.next();if(name.equals("modern")){FurnitureFactory sf=new ModernFactory();Chair chair=sf.createChair();//调用两次是因为一种风格里具有两种家具chair.show();Sofa sofa=sf.createSofa();sofa.dispaly();} else if(name.equals("classical")){FurnitureFactory sf=new ClassicalFactory();Chair chair=sf.createChair();chair.show();Sofa sofa=sf.createSofa();sofa.dispaly();}}}
}interface Chair{//抽象椅子接口void show();
}
class ModernChair implements Chair{// 具体椅⼦--现代⻛@Overridepublic void show(){System.out.println("modern chair");}
}class ClassicalChair implements Chair{// 具体椅⼦--古典⻛@Overridepublic void show(){System.out.println("classical chair");}
}interface Sofa{//抽象沙发void dispaly();
}class ModernSofa implements Sofa{// 具体沙发--现代⻛@Overridepublic void dispaly(){System.out.println("modern sofa");}
}
class ClassicalSofa implements Sofa{// 具体沙发--古典⻛@Overridepublic void dispaly(){System.out.println("classical sofa");}
}interface FurnitureFactory{// 抽象家居⼯厂,用于创造什么工厂Chair createChair();//什么工厂那他的(返回)对象就是什么类型!Sofa  createSofa();
}class ModernFactory implements FurnitureFactory{// 具体现代⻛格家居⼯⼚@Overridepublic Chair createChair(){//有现代椅子return new ModernChair();}@Overridepublic Sofa createSofa(){//也有现代沙发return new ModernSofa();}
}class ClassicalFactory implements FurnitureFactory{//同理@Overridepublic Chair createChair(){return new ClassicalChair();}@Overridepublic Sofa createSofa(){return new ClassicalSofa();}
}

http://www.mrgr.cn/news/13723.html

相关文章:

  • 基于深度学习的游客满意度分析与评论分析【情感分析、主题分析】
  • Java设计模式之建造者模式详细讲解和案例示范
  • HTML沙漏爱心
  • SQL进阶技巧:如何查询最近一笔有效订单? | 近距离有效匹配问题
  • 云计算概述
  • Spring MVC常用注解及用法
  • 无人机挂载迫击炮吊舱设计技术详解
  • Selenium(HTML基础)
  • Vue 0_1项目实战
  • React -TS学习—— useRef
  • Swift concurrency 4 — Task和.task的理解与使用
  • Go 服务调试精解
  • ZooKeeper体系架构、安装、HA
  • [MySql]保姆级上手教程
  • 软考:软件设计师 — 17.程序设计语言与语言处理程序基础
  • Datawhale X 李宏毅苹果书 AI夏令营_深度学习基础学习心得Task2
  • SSM复习
  • 前端速通面经八股系列(五)—— Vue(上)
  • 语义分割训练精度计算
  • python基础(12迭代器生成器)