抽象工廠模式(Abstract Factory)

在這裏插入圖片描述

public class Client {
    public static void main(String[] args){
        try {
            TV tv = HairFactory.produceTV();
            tv.play();
            AirConditioner airConditioner = HairFactory.produceAirConditioner();
            airConditioner.changeTemperature();
        } catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }
}
public interface EFactory {
    static TV produceTV() {
        return null;
    }

    static AirConditioner produceAirConditioner() {
        return null;
    }
}
public interface TV {
    public void play();
}
public interface AirConditioner {
    public void changeTemperature();
}
public class HairFactory {
    public static TV produceTV(){
        return new HairTV();
    }
    public static AirConditioner produceAirConditioner(){
        return new HairAirConditioner();
    }
}
public class TCLFactory {
    public TV produceTV(){
        return new TCLTV();
    }
    public AirConditioner produceAirConditioner(){
        return new TCLConditioner();
    }
}
public class HairTV implements TV{
    @Override
    public void play() {
        System.out.println("海爾電視播放。。。。");
    }
}
public class TCLTV implements TV {
    @Override
    public void play() {
        System.out.println("TCL電視正在播放。。。。");
    }
}
public class HairAirConditioner implements AirConditioner {
    @Override
    public void changeTemperature() {
        System.out.println("海爾空調正在調整溫度。。。");
    }
}
public class TCLConditioner implements AirConditioner {

    @Override
    public void changeTemperature() {
        System.out.println("TCL空調正在調整溫度。。。。");
    }
}

Tips: 和工廠方法相比,感覺抽象工廠模式是工廠方法的上一級,應用於比較大規模的項目中。

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