工廠模式
/** * 工廠模式 * @author Levi */ public class J01FactoryMode { public static void main(String[] args) { /* * 工廠製造車是視市場環境來決定今年要增產哪些車型的。 * 製造哪些車,怎麼製造,工廠老闆並不關心。 * 並且後期要製造新的車,客戶端的代碼是不用直接修改的,降低了客戶端代碼和實現類的耦合度,傳不同的參數實現不同的對象 */ Car car = Factory.getInstanceCar("BMW"); car.manufacture(); } }
/** * 車 * @author Levi */ abstract class Car { /** * 製造車 * @author Levi void */ public abstract void manufacture();
}
/** * 具體的車 * @author Levi */ class Bmw extends Car {
@Override public void manufacture() { System.out.println("開始製造BMW這款車"); System.out.println("..."); System.out.println("BMW製造完成"); } }
/** * 工廠 * @author Levi */ class Factory { public static Car getInstanceCar(String type) { if(type.equalsIgnoreCase("BMW")) { return new Bmw(); } return null; } } |