简单工厂模式又称为静态工厂模式。定义用于创建对象的工厂。
组成:
抽象产品类:接口或者抽象类,一系列产品的抽象。
具体产品类:普通类,继承或实现抽象产品。
工厂类:普通类,用于创建具体产品对象。
类图关系:
具体例子:
抽象产品类:Car.java
public abstract class Car {
public abstract void driveCar();
}
具体产品类:BmwCar.java;BenzCar.java;AudiCar.java
public class BmwCar extends Car {
@Override
public void driveCar() {
// TODO Auto-generated method stub
System.out.println("drive bmv");
}
}
public class BenzCar extends Car {
@Override
public void driveCar() {
// TODO Auto-generated method stub
System.out.println("drive benz");
}
}
public class AudiCar extends Car {
@Override
public void driveCar() {
// TODO Auto-generated method stub
System.out.println("drive audi");
}
}
工厂类:SimpleFactory.java
public class SimpleFactory {
public static Car createCar(String carType) {
if("bmw".equals(carType)) {
return new BmwCar();
} else if("benz".equals(carType)) {
return new BenzCar();
} else if("audi".equals(carType)) {
return new AudiCar();
} else {
return null;
}
}
}
客户端:Client.java
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Car car = SimpleFactory.createCar("bmw");
if(car != null) {
car.driveCar();
} else {
System.out.println("此类型的车还没有注册!!!");
}
}
}
使用场景:
工厂类负责创建对象较少,而且具体对象不总是增加。
一般只在很简单的场合使用。