工廠模式

在這裏插入圖片描述

public class Client {
   public static void main(String[] args){
       try{
           Car car = BMWFactory.produceCar();
           car.drive();
       }catch (Exception e){
           System.out.println(e.getMessage());
       }
   }
}
public interface CarFactory {
    public static Car produceCar() {
        return null;
    }
}
public class BMWFactory implements CarFactory{
    public static Car produceCar() {
        System.out.println("BMW汽車工廠正在製造汽車");
        return new BMWCar();
    }
}

public class QOROSFactory implements CarFactory{
    public static Car produceCar() {
        System.out.println("QOROS汽車工廠正在製造汽車");
        return new QOROSCar();
    }
}
public interface Car {
    public void drive();
}
public class BMWCar implements Car {
    public void drive(){
        System.out.println("BMW汽車正在行駛");
    }
}
public class QOROSCar implements Car{
    public void drive(){
        System.out.println("QOROS汽車正在行駛");
    }
}

缺點:當需要添加新的功能模塊時,雖然滿足了開閉原則,但每次添加一個功能模塊,需要添加兩個類,比較累贅。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章