定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
举例:
学校里需要制造一年级的语文书、数学书,二年级的语文书、数学书。
类图

客户端
#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;
}
日后如果客户端需要修改为使用其他年级的书籍,只需扩展一个对应年级工厂类,及相应的书籍类,将客户端中的工厂更新为三年级工厂即可,其他无需改动。做到了对扩展开放,对修改封闭。

本文介绍了一种设计模式——抽象工厂模式,它提供了一个创建一系列相关或相互依赖对象的接口,无需指定具体类。通过学校制造不同年级书籍的例子,展示了如何通过扩展工厂类实现对新需求的支持,同时保持代码的整洁和可维护性。
1012

被折叠的 条评论
为什么被折叠?



