跳至主要內容

设计模式-创建型-简单工厂

引领潮流小于 1 分钟设计模式archive

1、定义

简单工厂模式:一个工厂类根据传入参数决定创建哪一种产品实例

uml类图

简单工厂
简单工厂

2、例子

定义不同类型车

//定义车
public interface ICar {
    void drive();
}

//吉普车
public class JeepCar implements ICar {
    @Override
    public void drive() {
        System.out.println( "吉普车" );
    }
}
//小轿车
public class SmallCar implements ICar {
    @Override
    public void drive() {
        System.out.println( "小轿车" );
    }
}

public class SportCar implements ICar {
    @Override
    public void drive() {
        System.out.println( "运动车" );
    }
}

简单工厂

//定义车类型
public enum CarType {
    SPORT_CAR,
    JEEP_CAR,
    SMALL_CAR
}

//工厂
public class CarFactory {

    public static ICar createCar(CarType type){
        switch (type){
            case SMALL_CAR:
                return new SmallCar();
            case JEEP_CAR:
                return new JeepCar();
            case SPORT_CAR:
                return new SportCar();
            default:
                return new SmallCar();
        }
    }

}

/**
 *
 * 简单工厂
 *
 */
public class TestMain {

    public static void main(String[] args){

        ICar smallCar = CarFactory.createCar( CarType.SMALL_CAR );
        smallCar.drive();

        ICar jeepCar = CarFactory.createCar( CarType.JEEP_CAR );
        jeepCar.drive();

        ICar sportCar = CarFactory.createCar( CarType.SPORT_CAR );
        sportCar.drive();

    }

}

代码示例

https://github.com/yinlingchaoliu/23-design-pattern