AbstractFactory Pattern(抽象工厂模式)
来源:互联网 发布:女孩子湿有多夸张知乎 编辑:程序博客网 时间:2024/05/18 07:28
/*Product.h*/#ifndef PRODUCT_H#define PRODUCT_Hclass AbstractProductA{public:virtual ~AbstractProductA();protected:AbstractProductA();private:};class AbstractProductB{public:virtual ~AbstractProductB();protected:AbstractProductB();private:};class ProductA1:public AbstractProductA{public:ProductA1();~ProductA1();protected:private:};class ProductA2:public AbstractProductA{public:ProductA2();~ProductA2();protected:private:};class ProductB1:public AbstractProductB{public:ProductB1();~ProductB1();protected:private:};class ProductB2:public AbstractProductB{public:ProductB2();~ProductB2();protected:private:};#endif
/*Product.cpp*/#include "Product.h"#include <iostream>AbstractProductA::AbstractProductA(){}AbstractProductA::~AbstractProductA(){}AbstractProductB::AbstractProductB(){}AbstractProductB::~AbstractProductB(){}ProductA1::ProductA1(){std::cout<<"ProductA1..."<<std::endl;}ProductA1::~ProductA1(){}ProductA2::ProductA2(){std::cout<<"ProductA2..."<<std::endl;}ProductB1::ProductB1(){std::cout<<"ProductB1..."<<std::endl;}ProductB1::~ProductB1(){}ProductB2::ProductB2(){cout<<"ProductB2"<<std::endl;}ProductB2::~ProductB2(){}
/*AbstractFactory.h*/#ifndef ABSTRACTFACTORY_H#define ABSTRACTFACTORY_Hclass AbstractProductA;class AbstractProductB;class AbstractFactory{public:virtual ~AbstractFactory();virtual AbstractProductA *CreateProductA()=0;virtual AbstractProductB *CreateProductB()=0;protected:AbstractFactory();private:};class ConcreteFactory1:public AbstractFactory{public:ConcreteFactory1();~ConcreteFactory1();AbstractProductA *CreateProductA();AbstractProductB *CreateProductB();protected:private:};class ConcreteFactory2::public AbstractFactory{public:ConcreteFactory2();~ConcreteFactory2();AbstractProductA *CreateProductA();AbstractProductB *CreateProductB();protected:private:};#endif
/*AbstractFactory.cpp*/#include "AbstractFactory.h"#include "Product.h"#include <iostream>AbstractFactory::AbstractFactory(){}AbstractFactory::~AbstractFactory(){}ConcreteFactory1::ConcreteFactory1(){}ConcreteFactory1::~ConcreteFactory1(){}AbstractProductA *ConcreteFactory1::CreateProductA(){return new ProductA1();}AbstractProductB *ConcreteFactory1::CreateProductB(){return new ProductB1();}ConcreteFactory2::ConcreteFactory2(){}ConcreteFactory2::~ConcreteFactory2(){}AbstractProductA *ConcreteFactory2::CreateProductA(){return new ProductA2();}AbstractProductB *ConcreteFactory2::CreateProductB(){return new ProductB2();}
/*main.cpp*/#include "AbstractFactory.h"int main(){AbstractFactory *cf1=new ConcreteFactory1();cf1->CreateProductA();cf1->CreateProductB();AbstractFactory *cf2=new ConcreteFactory2();cf2->CreateProductA();cf2->CreateProductB();return 0;}
0 0
- AbstractFactory Pattern(抽象工厂模式)
- 浅谈 java 设计模式--抽象工厂模式(AbstractFactory pattern)
- 抽象工厂模式(AbstractFactory)
- 解读设计模式----抽象工厂模式(AbstractFactory Pattern)
- 解读设计模式----抽象工厂模式(AbstractFactory Pattern)
- 设计模式-抽象工厂模式(abstractFactory pattern)
- AbstractFactory抽象工厂模式
- AbstractFactory抽象工厂模式
- AbstractFactory抽象工厂模式
- 抽象工厂模式 AbstractFactory
- 23种设计模式之-----抽象工厂模式(AbstractFactory pattern)
- 7、抽象工厂模式(AbstractFactory)
- 抽象工厂(AbstractFactory)
- 设计模式--抽象工厂(AbstractFactory)
- 03.抽象工厂模式--AbstractFactory
- 03.抽象工厂模式--AbstractFactory
- 3.AbstractFactory-抽象工厂模式
- 设计模式 - AbstractFactory抽象工厂
- 初识Struts
- css学习基础之css sprite
- Linux中Nginx安装与配置(CentOS-6.5:nginx-1.5.0)
- Varnish介绍
- Struts2配置
- AbstractFactory Pattern(抽象工厂模式)
- mongodb学习笔记
- 服务器测试工具【Netperf、NetIQ Chariot、NetBench、ServerBench、FileBench、BenchMark Factory等】
- Android核心基础-3.Android 开发环境搭建
- 14 POJ3363 Annoying painting tool
- 石子归并(dp)
- YII2.0 Activeform表单组件的使用方法
- [C++]LeetCode 20: Valid Parentheses(判断运算符有效性)
- UVA - 10820 - Send a Table (欧拉函数)