前言:不断学习就是程序员的宿命
一、概述
案例需求:一个手机的项目:要便于手机种类的扩展,便于维护
(1)手机的种类很多(比如华为、小米、oppo等)
(2)手机的制作(prepare,produce,box)
(3)完成手机店订购的功能
二、传统模式
public class OrderPhone { // 构造器 public OrderPhone() { Phone phone = null; String orderType; // 订购手机的类型 do { orderType = getType(); if (orderType.equals("xiaomi")) { phone = new XiaomiPhone(); phone.setName(" 小米手机 "); } else if (orderType.equals("huawei")) { phone = new HuaweiPhone(); phone.setName(" 华为手机 "); } else if (orderType.equals("pepper")) { phone = new OppoPhone(); phone.setName("oppo手机"); } else { break; } //输出pizza 制作过程 phone.prepare(); phone.produce(); phone.box(); } while (true); } // 写一个方法,可以获取客户希望订购的手机种类 private String getType() { try { BufferedReader strin = new BufferedReader(new InputStreamReader(System.in)); System.out.println("input 手机 种类:"); String str = strin.readLine(); return str; } catch (IOException e) { e.printStackTrace(); return ""; } } }