抽象工厂模式
提供一个相互关联 或者 相互依赖的对象接口,无需指定它们具体的类
主要解决接口选择的问题
一个工厂里聚合多个同类定义
不一定是abstract修饰
public class AbstractFactoryTest {
public static void main(String[] args) {
AltoFactory altoFactory = new AltoFactory();
altoFactory.getCarType().carType();
altoFactory.getColor().chooseColor();
}
}
interface CarType{
void carType();
}
class AltoType implements CarType{
@Override
public void carType() {
System.out.println("SUV");
}
}
class QiruiType implements CarType{
@Override
public void carType() {
System.out.println("轿车");
}
}
interface Color{
void chooseColor();
}
class AltoColor implements Color{
@Override
public void chooseColor() {
System.out.println("红色");
}
}
class QiruiColor implements Color{
@Override
public void chooseColor() {
System.out.println("蓝色");
}
}
/**
* 抽象工厂类
*/
abstract class AbstractCarFactory {
abstract CarType getCarType();
abstract Color getColor();
}
class AltoFactory extends AbstractCarFactory {
@Override
public CarType getCarType() {
return new AltoType();
}
@Override
public Color getColor() {
return new AltoColor();
}
}
class QiruiFactory extends AbstractCarFactory {
@Override
public CarType getCarType() {
return new QiruiType();
}
@Override
public Color getColor() {
return new QiruiColor();
}
}