【設計模式】(七)--創建型模式--工廠模式3抽象工廠模式

【設計模式】(七)–創建型模式–工廠模式3抽象工廠模式

抽象工廠模式簡單實現
類圖
在這裏插入圖片描述
實現

public interface Fruit {
    void showTaste();
}
public interface Apple extends Fruit{
}
public interface Orange extends Fruit {
}
public class AppleJuice implements Apple {
    @Override
    public void showTaste() {
        System.out.println("蘋果汁酸甜可口");
    }

    public AppleJuice() {
        this.showTaste();
    }
}
public class OrangeJuice implements Orange {
    @Override
    public void showTaste() {
        System.out.println("橙汁酸甜可口");
    }

    public OrangeJuice() {
        this.showTaste();
    }
}
public class DriedApple implements Apple{
    @Override
    public void showTaste() {
        System.out.println("蘋果乾爽脆");
    }

    public DriedApple() {
        this.showTaste();
    }
}
public class DriedOrange implements Orange {
    @Override
    public void showTaste() {
        System.out.println("橙子乾爽酸爽");
    }

    public DriedOrange() {
        this.showTaste();
    }
}
public interface FruitFactory {
    Fruit createApple();

    Fruit createOrange();
}
public class DriedFruitFactoryImpl implements FruitFactory {
    @Override
    public Fruit createApple() {
        return new DriedApple();
    }

    @Override
    public Fruit createOrange() {
        return new DriedOrange();
    }
}
public class FruitJuiceFactoryImpl implements FruitFactory {

    @Override
    public Fruit createApple() {
        return new AppleJuice();
    }

    @Override
    public Fruit createOrange() {
        return new OrangeJuice();
    }
}
public class Client {
    public static void main(String[] args) {
        FruitFactory driedFruitFactory = new DriedFruitFactoryImpl();
        FruitFactory juiceFactory = new FruitJuiceFactoryImpl();
        Fruit driedApple = driedFruitFactory.createApple();
        Fruit driedOrange = driedFruitFactory.createOrange();
        Fruit appleJuice = juiceFactory.createApple();
        Fruit orangeJuice = juiceFactory.createOrange();
    }
}

效果如下
在這裏插入圖片描述

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