1
package smu.gaoyi.pattern.simplefactory;
/**
* 简单工厂模式
* @author gaoyi
*
*/
public class Car {
private int wheelCount;//轮子数量
private String color;
private boolean automatic;//是否可自动驾驶,假设Land Rover可自动驾驶,Jeep不可自动驾驶
public void run() {
}
}
2
package smu.gaoyi.pattern.simplefactory;
/**
* 路虎汽车
* @author gaoyi
*
*/
public class LandRover extends Car {
public void run() {
System.out.println("Land Rover run...");
}
}
3
package smu.gaoyi.pattern.simplefactory;
/**
* 吉普汽车
* @author gaoyi
*
*/
public class Jeep extends Car {
public void run() {
System.out.println("Jeep run...");
}
}
4package smu.gaoyi.pattern.simplefactory;
/**
* 工厂类
* @author gaoyi
*
*/
public class CarFactory {
public static Car createCar(boolean automatic) {
Car car = null;
if(automatic == true) {
car = new LandRover();
}else {
car = new Jeep();
}
return car;
}
}
5测试
package smu.gaoyi.pattern.simplefactory;
public class Client {
public static void main(String[] args) {
Car car = null;
//Land Rover
car = CarFactory.createCar(true);
car.run();
}
}