簡單工廠模式 SimpleFactory,適用於業務相對較簡單地情況,少扯閒話,先上code:
~~ ICar.Java ~~ 抽象產品角色接口
/**
* @author VerpHen
* @date 2013年9月10日 上午9:36:19
*/
package org.verphen.simpleFactory;
/*抽象產品角色接口:汽車Car*/
public interface ICar {
/* 汽車啟動 */
public void run();
/* 汽車停止 */
public void stop();
}
~~ Benz.Java ~~ 具體產品角色類
/**
* @author VerpHen
* @date 2013年9月10日 上午9:38:08
*/
package org.verphen.simpleFactory;
/*具體產品角色類:汽車-奔馳Benz*/
public class Benz implements ICar {
@Override
public void run() {
System.out.println("奔馳啟動");
}
@Override
public void stop() {
System.out.println("奔馳停止");
}
}
~~ Ferrari.Java ~~ 具體產品角色類
/**
* @author VerpHen
* @date 2013年9月10日 上午9:40:18
*/
package org.verphen.simpleFactory;
/*具體產品角色類:汽車-法拉利Ferrari*/
public class Ferrari implements ICar {
@Override
public void run() {
System.out.println("法拉利啟動");
}
@Override
public void stop() {
System.out.println("法拉利停止");
}
}
~~ Jaguar.Java ~~ 具體產品角色類
/**
* @author VerpHen
* @date 2013年9月10日 上午9:42:21
*/
package org.verphen.simpleFactory;
/*具體產品角色類:汽車-捷豹-Jaguar*/
public class Jaguar implements ICar {
@Override
public void run() {
System.out.println("捷豹啟動");
}
@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 {
/* 工廠方法,返回類型為抽象的產品角色 */
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();
}
}