工厂方法模式不再提供一个统一的工厂类来创将产品对象,而是针对不同的产品提供不同的工厂,系统提供一个于产品等级结构对应的工厂等级结构。
//抽象工厂类 interface Factory{ Vehicle produce(); } //汽车工厂 class CarFactory implements Factory{ @Override public Vehicle produce(){ return new Car(); } } //公交车工厂 class BusFactory implements Factory{ public Vehicle produce(){ return new Bus(); } } //自行车工厂 class Bycycle implements Factory{ public Vehicle produce(){ return new Bicycle(); } } //交通工具(抽象类) interface Vehicle{ void run(); } //汽车类(具体类) class Car implements Vehicle{ @Override public void run(){ System.out.println("car run....."); } } //公交车类(具体类) class Bus implements Vehicle{ @Override public void run(){ System.out.println("bus run....."); } } //自行车类(具体类) class Bicycle implements Vehicle{ @Override public void run(){ System.out.println("bicycle run....."