工厂模式最终可以完成
1.任意定制交通工具
2.任意定制生产过程 -- 工厂方法实现
3.任意定制产品一族 -- 抽象工厂实现
工厂方法-(Factory Method) : 定义一个用于创建产品的接口,由子类决定生产什么产品
/** * 定义一个交通工具 */ public interface Vehicle { void go(); } /** * 飞行扫把 */ public class Broom implements Vehicle { @Override public void go() { System.out.println("broom go"); } } /** * 汽车 */ public class Car implements Vehicle { @Override public void go() { System.out.println("car go"); } } /** * 飞机 */ public class Plane implements Vehicle { @Override public void go() { System.out.println("plane go "); } }
/** * 交通创建工厂 */ public interface VehicleFactory { Vehicle create(); } public class BroomFactory implements VehicleFactory { @Override public Vehicle create() { System.out.println(" create broom before"); return new Broom(); } } public class CarFactory implements VehicleFactory { @Override public Vehicle create() { System.out.println(" create car before"); return new Car(); } } public class PlaneFactory implements VehicleFactory { @Override public Vehicle create() { System.out.println(" create plane before"); return new Plane(); } }
public class Main { public static void main(String[] args) { Vehicle car = new CarFactory().create(); car.go(); Vehicle plane = new PlaneFactory().create(); plane.go(); } }
结果: create car before car go create plane before plane go