diff --git a/src/factoryMethod/Car.java b/src/factoryMethod/Car.java new file mode 100644 index 0000000..0024212 --- /dev/null +++ b/src/factoryMethod/Car.java @@ -0,0 +1,8 @@ +package factoryMethod; + +public class Car implements Vehicle{ + @Override + public void go() { + System.out.println("Car starting... go to park..."); + } +} diff --git a/src/factoryMethod/CarFactory.java b/src/factoryMethod/CarFactory.java new file mode 100644 index 0000000..223f30a --- /dev/null +++ b/src/factoryMethod/CarFactory.java @@ -0,0 +1,8 @@ +package factoryMethod; + +public class CarFactory { + public Vehicle createCar(){ + System.out.println("car created..."); + return new Car(); + } +} diff --git a/src/factoryMethod/Main.java b/src/factoryMethod/Main.java new file mode 100644 index 0000000..b8f5793 --- /dev/null +++ b/src/factoryMethod/Main.java @@ -0,0 +1,8 @@ +package factoryMethod; + +public class Main { + public static void main(String[] args) { + Vehicle vehicle = new Car(); + vehicle.go(); + } +} diff --git a/src/factoryMethod/Plane.java b/src/factoryMethod/Plane.java new file mode 100644 index 0000000..ea10769 --- /dev/null +++ b/src/factoryMethod/Plane.java @@ -0,0 +1,8 @@ +package factoryMethod; + +public class Plane implements Vehicle{ + @Override + public void go() { + System.out.println("plant moving.. fly fly fly..."); + } +} diff --git a/src/factoryMethod/SimpleVehicleFactory.java b/src/factoryMethod/SimpleVehicleFactory.java new file mode 100644 index 0000000..a04267a --- /dev/null +++ b/src/factoryMethod/SimpleVehicleFactory.java @@ -0,0 +1,16 @@ +package factoryMethod; + +/* +* 简单工厂扩展性不好 +* */ +public class SimpleVehicleFactory { + public Car createCar(){ + //一些前置操作。。。 + return new Car(); + } + + public Plane createPlane(){ + //一些前置操作。。。 + return new Plane(); + } +} diff --git a/src/factoryMethod/Vehicle.java b/src/factoryMethod/Vehicle.java new file mode 100644 index 0000000..c1fa792 --- /dev/null +++ b/src/factoryMethod/Vehicle.java @@ -0,0 +1,5 @@ +package factoryMethod; + +public interface Vehicle { + void go(); +}