实现效果

  1. 出海捕鱼~~~
  2. 25 分钟
  3. 切成6
  4. 装箱
  5. [芝士披萨]制作完成
  6. 准备食材
  7. 25 分钟
  8. 切片,铺上芝士
  9. 装箱
  10. [芝士披萨]制作完成
  11. 不会做的披萨,改为普通披萨
  12. 准备食材
  13. 25 分钟
  14. 切成6
  15. 装箱
  16. [普通披萨]制作完成

讲解

其实就是一种编程思想,模块化编程事项,没什么好说的。

完整代码

  1. package factoryMode;
  2. class Pizza
  3. {
  4. String name;
  5. public Pizza() {
  6. name = "普通披萨";
  7. }
  8. Pizza OrderPizza(String pizzaType)
  9. {
  10. Pizza pizza;
  11. SimplePizzaFactory simplePizzaFactory = new SimplePizzaFactory();//生成pizza
  12. pizza = simplePizzaFactory.CreatePizza(pizzaType);
  13. pizza.prepare();
  14. pizza.bake();
  15. pizza.cut();
  16. pizza.box();
  17. return pizza;
  18. }
  19. void prepare() {
  20. System.out.println("准备食材");
  21. }
  22. void bake() {
  23. System.out.println("烤 25 分钟");
  24. }
  25. void cut() {
  26. System.out.println("切成6片");
  27. }
  28. void box() {
  29. System.out.println("装箱");
  30. System.out.println("[" + name + "]" +"制作完成");
  31. }
  32. }
  33. // 将用来区分不同类型,单独生成一个类
  34. class SimplePizzaFactory
  35. {
  36. public Pizza CreatePizza(String pizzaType)
  37. {
  38. Pizza pizza = null;
  39. if(pizzaType.equals("海鲜披萨")) {
  40. pizza = new SeafoodPizza();
  41. }else if (pizzaType.equals("芝士披萨")) {
  42. pizza = new CheesePizza();
  43. }else {
  44. pizza = new Pizza();
  45. System.out.println("不会做的披萨,改为普通披萨");
  46. }
  47. return pizza;
  48. }
  49. }
  50. class SeafoodPizza extends Pizza{
  51. public SeafoodPizza() {
  52. name = "芝士披萨";
  53. }
  54. void prepare() {
  55. System.out.println("出海捕鱼~~~");
  56. }
  57. }
  58. class CheesePizza extends Pizza{
  59. public CheesePizza() {
  60. name = "芝士披萨";
  61. }
  62. void cut() {
  63. System.out.println("切片,铺上芝士");
  64. }
  65. }
  66. public class main {
  67. static public void main(String[] args) {
  68. Pizza pizza = new Pizza();
  69. pizza.OrderPizza("海鲜披萨");
  70. pizza.OrderPizza("芝士披萨");
  71. pizza.OrderPizza("火箭披萨");
  72. }
  73. }