设计模式[21]-Factory Method

简介:

Type: Creational

Factory Method: 定义一个创建对象的接口,但是让子类决定实例化哪个类。新增加一个产品的时候,只需派生一个该类型的工厂而无需修改原来的代码。每个具体工厂只负责返回一种产品类。是最典型的模板方法模式(Templete Method pattern)应用。

#include <iostream>  
using namespace std;  

class Product{};  

class ConcreteProduct: public Product  
{  
public:  
    ConcreteProduct()  
    {  
        cout<<"ConcreteProduct"<<endl;  
    };  
};  

class Creator  
{  
public:  
    virtual Product* factoryMethod() = 0;  
};  

class ConcreteCreator: public Creator  
{  
public:  
    Product* factoryMethod()  
    {  
        cout<<"ConcreteCreator decide which class to instantiate"<<endl;  
        return new ConcreteProduct;  
    };  
};  

int main()  
{  
    Creator* pCreator = new ConcreteCreator;  
    Product* pProduct = pCreator->factoryMethod();  
    system("pause");  
}; 

目录
相关文章
|
7月前
|
设计模式 算法
设计模式9 - 模板方法模式【Template Method Pattern】
设计模式9 - 模板方法模式【Template Method Pattern】
22 0
|
7月前
|
设计模式 算法 Java
设计模式~模板方法模式(Template method)-10
目录 (1)优点: (2)缺点: (3)使用场景: (4)注意事项: (5)应用实例: (6)Servlet Api &
34 0
|
6月前
|
设计模式 Java 程序员
认真学习设计模式之工厂模式(Factory Pattern)
认真学习设计模式之工厂模式(Factory Pattern)
36 0
|
7月前
|
设计模式 Java
设计模式6 - 抽象工厂模式【Abstract Factory Pattern】
设计模式6 - 抽象工厂模式【Abstract Factory Pattern】
22 0
|
7月前
|
设计模式
设计模式5 - 工厂方法模式【Factory Method Pattern】
设计模式5 - 工厂方法模式【Factory Method Pattern】
20 0
|
7月前
|
设计模式 算法 Java
【设计模式——学习笔记】23种设计模式——模板方法模式Template Method(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——模板方法模式Template Method(原理讲解+应用场景介绍+案例介绍+Java代码实现)
23 0
|
7月前
|
设计模式 Java 程序员
【设计模式——学习笔记(下)】23种设计模式——工厂模式Factory(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——工厂模式Factory(原理讲解+应用场景介绍+案例介绍+Java代码实现)
39 0
|
7月前
|
设计模式 Java 关系型数据库
【设计模式——学习笔记(上)】23种设计模式——工厂模式Factory(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——工厂模式Factory(原理讲解+应用场景介绍+案例介绍+Java代码实现)
42 0
|
9月前
|
设计模式
【3W2H设计模式】抽象工厂模式(Abstract Factory Pattern)
【3W2H设计模式】抽象工厂模式(Abstract Factory Pattern)
110 0
|
9月前
|
设计模式 数据库 uml
3W2H学设计模式- 工厂模式(Factory Pattern)
3W2H学设计模式- 工厂模式(Factory Pattern)
91 0