1、Car.java
package com.company.factory.abstractFactory;
public abstract class Car { }
abstract class Audi extends Car{}
abstract class BMW extends Car{}
class AudiCar extends Audi implements Jiao{}
class AudiSUV extends Audi implements SUV{}
class BMWCar extends BMW implements Jiao{}
class BMWSUV extends BMW implements SUV{}
interface Jiao{}
interface SUV{}
2、Factory.java
package com.company.factory.abstractFactory;
public interface Factory {
Jiao getJiao();
SUV getSUV();
}
class BMWFactory implements Factory {
@Override
public Jiao getJiao() {
return new BMWCar();
}
@Override
public SUV getSUV() {
return new BMWSUV();
}
}
class AudiFactory implements Factory {
@Override
public Jiao getJiao() {
return new AudiCar();
}
@Override
public SUV getSUV() {
return new AudiSUV();
}
}
使用
public static void main(String[] args) {
Jiao bmwJiao = new BMWFactory().getJiao();
SUV bmwSuv = new BMWFactory().getSUV();
Jiao audiJiao = new AudiFactory().getJiao();
SUV audiSuv = new AudiFactory().getSUV();
}