簡單工廠模式 SimpleFactory,適用于業(yè)務(wù)相對較簡單地情況,少扯閑話,先上code:
~~ ICar.java ~~ 抽象產(chǎn)品角色接口
/** * @author VerpHen * @date 2013年9月10日 上午9:36:19 */ package org.verphen.simpleFactory; /*抽象產(chǎn)品角色接口:汽車Car*/ public interface ICar { /* 汽車啟動(dòng) */ public void run(); /* 汽車停止 */ public void stop(); } |
~~ Benz.java ~~ 具體產(chǎn)品角色類
/** * @author VerpHen * @date 2013年9月10日 上午9:38:08 */ package org.verphen.simpleFactory; /*具體產(chǎn)品角色類:汽車-奔馳Benz*/ public class Benz implements ICar { @Override public void run() { System.out.println("奔馳啟動(dòng)"); } @Override public void stop() { System.out.println("奔馳停止"); } } |
~~ Ferrari.java ~~ 具體產(chǎn)品角色類
/** * @author VerpHen * @date 2013年9月10日 上午9:40:18 */ package org.verphen.simpleFactory; /*具體產(chǎn)品角色類:汽車-法拉利Ferrari*/ public class Ferrari implements ICar { @Override public void run() { System.out.println("法拉利啟動(dòng)"); } @Override public void stop() { System.out.println("法拉利停止"); } } |
~~ Jaguar.java ~~ 具體產(chǎn)品角色類
/** * @author VerpHen * @date 2013年9月10日 上午9:42:21 */ package org.verphen.simpleFactory; /*具體產(chǎn)品角色類:汽車-捷豹-Jaguar*/ public class Jaguar implements ICar { @Override public void run() { System.out.println("捷豹啟動(dòng)"); } @Override public void stop() { System.out.println("捷豹停止"); } } |
~~ SimpleFactory.java ~~ 工廠角色類
/** * @author VerpHen * @date 2013年9月10日 上午9:29:02 */ package org.verphen.simpleFactory; /*工廠角色類*/ public class SimpleFactory { /* 工廠方法,返回類型為抽象的產(chǎn)品角色 */ public static ICar driveCar(String carType) { /* equalsIgnoreCase() 忽略carType大小寫 */ if ("Benz".equalsIgnoreCase(carType)) { return new Benz(); } else if ("Ferrari".equalsIgnoreCase(carType)) { return new Ferrari(); } else if ("Jaguar".equalsIgnoreCase(carType)) { return new Jaguar(); } return null; } } |
~~ SimpleFactoryTest.java ~~ 測試類
/** * @author VerpHen * @date 2013年9月10日 上午9:48:32 */ package org.verphen.simpleFactory; /*測試簡單工廠方法類*/ public class SimpleFactoryTest { public static void main(String[] args) { // ICar car = SimpleFactory.driveCar("Benz"); // ICar car = SimpleFactory.driveCar("Ferrari"); ICar car = SimpleFactory.driveCar("Jaguar"); car.run(); car.stop(); } } |