抽象工厂模式——探索之旅
来源:互联网 发布:老男孩网络 编辑:程序博客网 时间:2024/05/21 11:06
抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据LSP原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。换言之,也就是这些抽象产品的具体子类的实例。工厂类负责创建抽象产品的具体子类的实例。
#pragma once#include <iostream>using namespace std;struct IProductA{};struct IProductB{};class ProductA1 :public IProductA{public:void functionA1(){cout << "call function ProductA1::functionA1" << endl;}};class ProductB1 :public IProductB{public:void functionB1(){cout << "call function ProductB1::functionB1" << endl;}};class ProductA2 :public IProductA{public:void functionA2(){cout << "call function ProductA2::functionA2" << endl;}};class ProductB2 :public IProductB{public:void functionB2(){cout << "call function ProductB2::functionB2" << endl;}};class AbstractFactory{public:template<typename T>T* createProduct(){return new T;}};void abstractFactoryTest(){AbstractFactory* abstractFactory = new AbstractFactory;ProductA1* productA1 = abstractFactory->createProduct<ProductA1>();ProductA2* productA2 = abstractFactory->createProduct<ProductA2>();ProductB1* productB1 = abstractFactory->createProduct<ProductB1>();ProductB2* productB2 = abstractFactory->createProduct<ProductB2>();productA1->functionA1();productB1->functionB1();productA2->functionA2();productB2->functionB2();}
0 0
- 抽象工厂模式——探索之旅
- 实例探索Java模式之路——抽象工厂模式
- 工厂模式之——【抽象工厂模式】
- 工厂模式—抽象
- C#设计模式之3——抽象工厂模式
- 设计模式之3——抽象工厂模式
- 设计模式之——抽象工厂模式
- 《设计模式之禅》——抽象工厂模式
- 设计模式之(二)——抽象工厂模式
- 创建型模式之三——抽象工厂模式
- 设计模式之禅——抽象工厂模式
- 设计模式之——抽象工厂设计模式
- Java设计模式之——抽象工厂模式
- 23种设计模式之——抽象工厂模式
- Android设计模式之——抽象工厂模式
- 工厂方法——探索之旅
- java设计模式示例程序之 ——简单工厂、工厂方法、抽象工厂模式
- 设计模式探索——工厂模式
- 当智力游戏遇到程序员(一 )三皇后
- 2015062305 - 张瑞敏:人不成熟的五个特征(2)
- scrapy抓取知乎话题v0.1
- 利用MAT分析内存泄露
- Thikphp实现的图片上传
- 抽象工厂模式——探索之旅
- 2015062306 - 张瑞敏:人不成熟的五个特征(3)
- 选择排序-for语句实现
- mysql__事件
- JAVA面向对像基础之——内部类
- Python:循环、条件判断
- Hibernate性能调优--集合属性的延迟加载
- 2015062307 - 张瑞敏:人不成熟的五个特征(4)
- MyEclipse纯键盘操作生成所有getter setter