简单工厂模式(SimpleFactory Pattern):
又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
1. 汽车接口
package com.lf.shejimoshi.Factory; /** * @classDesc: 类描述:(汽车接口) * @author baobaolan * @createTime 2018年1月10日 * @version v1.0 */ public interface Car { void run(); }
2.奥迪类
package com.lf.shejimoshi.Factory; /** * @classDesc: 类描述:(奥迪车类) * @author baobaolan * @createTime 2018年1月10日 * @version v1.0 */ public class AodiCar implements Car { @Override public void run() { // TODO Auto-generated method stub System.out.println("生成了一辆奥迪!"); } }
3.奔驰类
package com.lf.shejimoshi.Factory; /** * @classDesc: 类描述:(奔驰车类) * @author baobaolan * @createTime 2018年1月10日 * @version v1.0 */ public class BenchiCar implements Car { @Override public void run() { // TODO Auto-generated method stub System.out.println("生成了一辆奔驰!"); } }
4.汽车工厂
package com.lf.shejimoshi.Factory; /** * @classDesc: 类描述:(汽车工厂) * @author baobaolan * @createTime 2018年1月10日 * @version v1.0 */ public class CarFactory { //jdk1.7 switch支持字符串 public static Car getCar(String carType){ Car car = null; switch (carType) { case "奥迪": car = new AodiCar(); break; case "奔驰": car = new BenchiCar(); break; default: break; } return car; } }
5.测试类
package com.lf.shejimoshi.Factory; /** * @classDesc: 类描述:() * @author baobaolan * @createTime 2018年1月10日 * @version v1.0 */ public class Main { public static void main(String[] args) { Car car = CarFactory.getCar("奥迪"); car.run(); } }
6.结果打印