时间:2021-05-20
抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
通常是在运行时刻在创建一个ConcreteFactory类的实例,这个具体的工厂再创建具有特定实现的产品对象,也就是说,为创建不同的产品对象,客户端应使用不同的具体工厂。
abstractproducta.h
#include <string>class AbstracProductA{public: AbstracProductA(); virtual ~AbstracProductA(); void Show(); virtual std::string Name();};class ConcreteProductA1 : public AbstracProductA{public: ConcreteProductA1(); std::string Name() override;};class ConcreteProductA2 : public AbstracProductA{public: ConcreteProductA2(); std::string Name() override;};abstractfactory.h
#include "abstracproducta.h"#include "abstracproductb.h"class AbstractFactory{public: AbstractFactory(); virtual ~AbstractFactory(); virtual AbstracProductA* CreateProductA() = 0; virtual AbstracProductB* CreateProductB() = 0;};class ConcreteFactory1 : public AbstractFactory{public: ConcreteFactory1(); AbstracProductA* CreateProductA() override; AbstracProductB* CreateProductB() override;};class ConcreteFactory2 : public AbstractFactory{public: ConcreteFactory2(); AbstracProductA* CreateProductA() override; AbstracProductB* CreateProductB() override;};main.cpp
#include <iostream>#include "abstractfactory.h"#include "abstracproducta.h"#include "abstracproductb.h"using namespace std;int main(){ AbstractFactory* factory1 = new ConcreteFactory1(); AbstracProductA* pA1 = factory1->CreateProductA(); AbstracProductB* pB1 =factory1->CreateProductB(); pA1->Show(); pB1->Show(); AbstractFactory* factory2 = new ConcreteFactory2(); AbstracProductA* pA2 = factory2->CreateProductA(); AbstracProductB* pB2 =factory2->CreateProductB(); pA2->Show(); pB2->Show(); return 0;}运行结果
抽象工厂模式的优点
模式的缺点
一个程序员如果从来没有熬夜写程序的经历,不能算是一个好程序猿,因为他没有痴迷过,所以他不会有大成就。
到此这篇关于C++设计模式实现抽象工厂模式的文章就介绍到这了,更多相关C++ 抽象工厂模式内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python设计模式之抽象工厂模式原理与用法。分享给大家供大家参考,具体如下:抽象工厂模式(AbstractFactoryPattern):提供一
本文实例讲述了java设计模式之工厂模式。分享给大家供大家参考,具体如下:工厂模式(factory)涉及到4个角色:抽象工厂类角色,具体工厂类角色,抽象产品类角
本文实例讲述了Java设计模式之抽象工厂模式。分享给大家供大家参考,具体如下:具体工厂类:生产创建某一类具体产品对象。抽象产品类可以使用接口或者父类来描述产品对
前言在《设计模式》一书中工厂模式提到了:工厂方法模式(FactoryMethod)抽象工厂模式(AbstractFactory)但是在实际过程中还有一种工厂模式
设计模式之单例模式C++实现一、经典实现(非线程安全)classSingleton{public:staticSingleton*getInstance();p