
图片引用于菜鸟教程
简介:抽象工厂模式是为了创建一系列产品而提供的解决方案,和简单工厂模式不一样的是,抽象工厂模式不只是创建一种产品,而是创建产品的一系列对象
优点:扩展性高,可以通过一系列对象实现某个功能
缺点:一旦添加新产品,就需要再新增一个工厂类
例子背景:现在客户需要i3、i5、i7、i9、DIY电脑主机,而这些主机各方面组件并不相同,那么使用抽象工厂模式,在为各种主机组装时就无需制定配件的型号,它会自动根据产品自动生成需要的配件
概念:抽象工厂模式提供某个具体产品的创建,每一个工厂只负责某个对象的创建
抽象工厂模式代码:
- 抽象产品类
#pragma once
class IProduct
{
public:
virtual ~IProduct(){
}
virtual void CreateCpu() = 0;
virtual void CreateMainboard() = 0;
virtual void CreateGraphicscard() = 0;
virtual void CreateMemorybank() = 0;
virtual void CreateHarddisk() = 0;
virtual void CreatePowersupply() = 0;
virtual void CreateHeatdissipation() = 0;
virtual void CreateComputercase() = 0;
virtual void CreateComputerAccessories()
{
CreateCpu();
CreateMainboard();
CreateGraphicscard();
CreateMemorybank();
CreateHarddisk();
CreatePowersupply();
CreateHeatdissipation();
CreateComputercase();
}
};
- 具体产品类
#pragma once
#include "IProduct.h"
#include <stdio.h>
class i3Hostparts : public IProduct
{
public:
~i3Hostparts(){
}
virtual void CreateCpu()
{
printf("创建了一个12代i3Cpu\n");
}
virtual void CreateMainboard()
{
printf("创建了一个h510主板\n");
}
virtual void CreateGraphicscard()
{
printf("创建了一个3050Ti显卡\n");
}
virtual void CreateMemorybank()
{
printf("创建了一个8G内存\n");
}
virtual void CreateHarddisk()
{
printf("创建了一个250G M.2硬盘\n");
}
virtual void CreatePowersupply()
{
<

该篇博客介绍了抽象工厂模式的概念和应用场景,通过电脑组装的例子展示了如何利用抽象工厂模式来创建不同配置的主机,包括i3、i5、i7和i9以及DIY电脑。每个主机的配置由不同的产品类代表,如CPU、主板、显卡等,工厂类则负责组装这些产品。此外,还讨论了抽象工厂模式的优缺点及其扩展性。在实际应用中,通过添加新的工厂类可以方便地支持更多产品类型。
最低0.47元/天 解锁文章
1377

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



