抽象工廠模式 - Abstract Factory

定義:提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。

舉例:
學校裏需要製造一年級的語文書、數學書,二年級的語文書、數學書。

類圖
類圖
客戶端

#include "FactoryGrade1.h"
#include "FactoryGrade2.h"

int main(int argc, char* argv[])
{
	//Factory *factory = new FactoryGrade1();   // 製造一年級的書
	Factory *factory = new FactoryGrade2();     // 製造二年級的書

	Book *chinese = factory->CreateChineseBook();
	Book *math = factory->CreateMathBook();

	chinese->show();
	math->show();

	getchar();   // 暫停,查看輸出結果
	return 0;
}

日後如果客戶端需要修改爲使用其他年級的書籍,只需擴展一個對應年級工廠類,及相應的書籍類,將客戶端中的工廠更新爲三年級工廠即可,其他無需改動。做到了對擴展開放,對修改封閉。

源碼地址

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