1、代码:
package com.design.partterns;
/**
* 23种设计模式之工厂模式
* @author com
*
*/
public class FactoryParttern {
public static void main(String[] args) {
FactoryParttern car = new FactoryParttern();
car.getCarType("Train").run();
car.getCarType("Bus").run();
car.getCarType("Taxi").run();
car.getCarType("Motor").run();
}
public Car getCarType(String carType) {
if(carType == null) {
return null;
}if(carType.equalsIgnoreCase("Train")) {
return new Train();
}if(carType.equalsIgnoreCase("Bus")) {
return new Bus();
}if(carType.equalsIgnoreCase("Taxi")) {
return new Taxi();
}if(carType.equalsIgnoreCase("Motor")) {
return new Motor();
}
return null;
}
}
/*
* 接口类:车
*/
interface Car{
public void run();
}
/*
* 实现类:火车
*/
class Train implements Car{
public void run() {
System.out.println("火车正在发动...");
}
}
/*
* 实现类:客车
*/
class Bus implements Car{
public void run() {
System.out.println("客车正在发动...");
}
}
/*
* 实现类:出租车
*/
class Taxi implements Car{
public void run() {
System.out.println("出租车正在发动...");
}
}
/*
* 实现类:摩托车
*/
class Motor implements Car{
public void run() {
System.out.println("摩托车正在发动...");
}
}
2、运行结果:
3、总结:
工厂模式属于创建型模式,设计思路是定义一个接口表示一个类型,再定义多个属于该类型的实现类实现接口中的方法。
最后再写一个工厂类,定义一个接口返回类型的方法,参数为实现类的名字,根据不同的名字调用相应的类模拟生产相应的产品。