工厂模式最终可以完成
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
浙公网安备 33010602011771号