疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java简单工厂模式


 

        简单工厂模式 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();

  }

  }