Java-設計模式(抽象工廠模式)

抽象工廠提供了一種方式,可以將一組具有同一主題的單獨工廠封裝起來。如果比較抽象工廠和工廠模式,不難發現前者只是在工廠模式之上增加了一層抽象的概念。抽象工廠是一個父類工廠,可以創建其他工廠。
簡單的說就是"工廠的工廠"
下面簡單舉一個例子
舉一個學習的例子,裏面有書本,筆,教室
其中教室是一個工廠

//一本抽象書
interface Book{
    public String bookName();
}
//一支抽象筆
interface Pen{
    public String penName();
}
//一間抽象教室
interface ClassFactory{
    public Book getBookname();
    public Pen getPenname();
}
//我在看這本java書
class JavaBook implements Book{

    @Override
    public String bookName() {
        return "JavaBook";
    }
}
//我在用這個品牌的筆
class Hero implements Pen{

    @Override
    public String penName() {
        return "Hero";
    }
}
//我在這間教室裏面學習
class ClassRealFactory implements ClassFactory{

    @Override
    public Book getBookname() {   //是這本書呀
        return new JavaBook();
    }

    @Override
    public Pen getPenname() {  //是這支筆呀
        return new Hero();
    }
}
public class CXgongchang {  //抽象工廠
    public void study(ClassRealFactory cf){  //開始學習....在這間真實的教室裏面
        System.out.println("I am reading "+cf.getBookname().bookName()+" and writing with a "+cf.getPenname().penName()+" Pen.");
    }
    public static void main(String[] args){
        ClassRealFactory cf = new ClassRealFactory();  //教室對象
        CXgongchang cx = new CXgongchang();  	//主類對象
        cx.study(cf);  	//調用學習的方法
    }
}

運行效果
在這裏插入圖片描述

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