package com.jason.factory; /** * @author jason * @Description: 定义一个汽车接口,有一个行驶的方法 * @date 2018/2/2 */ public interface Car { //未实现的方法 ---行驶 public void run(); }
package com.jason.factory; /** * @author jason * @Description: 奥迪汽车实现汽车开的方法 * @date 2018/2/2 */ public class Aodi implements Car { //实现行驶的接口 @Override public void run() { System.out.println("奥迪正在行驶..."); } }
package com.jason.factory; import java.util.Random; /** * @author jason * @Description: 宝马汽车实现Car接口 * @date 2018/2/2 */ public class Baoma implements Car{ //实现行驶的方法 @Override public void run() { System.out.println("宝马汽车正在行驶...."); } }
package com.jason.factory; /** * @author jason * @Description: 工厂方法类,需要什么车,就提供什么车 * @date 2018/2/2 */ public class CarFactory { //对外提供静态方法,如果需要什么车型,就直接返回什么车型的对象 public static Car getCar(String carType){ //如果需要宝马,就返回宝马 if(carType.equals("Baoma")){ return new Baoma(); //如果需要奥迪,就直接返回奥迪 }else if(carType.equals("Aodi")){ return new Aodi(); }else { return null; } } }
package com.jason.factory; /** * @author jason * @Description: 测试普通工厂方法 * @date 2018/2/2 */ public class Test { public static void main(String[] args) { //向汽车工厂要一个宝马 Car baoma = CarFactory.getCar("Baoma"); //宝马行驶 baoma.run(); //向汽车工厂要一个奥迪 Car aodi = CarFactory.getCar("Aodi"); //奥迪行驶 aodi.run(); } }