`
horizonhyg
  • 浏览: 58483 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Factory Pattern

阅读更多
[img]C:\Documents and Settings\Administrator\桌面\编程\设计模式\Factory.jpg[/img]

刚开始学习设计模式,还不是很懂,慢慢来吧,首先应该是Factory Pattern,下面是代码:
Product.h
#ifndef _PRODUCT_H_
#define _PRODUCT_H_
#include <iostream>

using namespace std;

class Product
{
public:
    virtual ~Product()=0;
protected:
    Product();
    
private:
};

class ConcreteProductA :public Product
{
public:
    ~ConcreteProductA();
    ConcreteProductA();
protected:
private:
};

class ConcreteProductB :public Product
{
public:
    ~ConcreteProductB();
    ConcreteProductB();
protected:
private:
};

#endif



Product.cpp

#include "Product.h"
#include <iostream>

using namespace std;

Product::Product(){}
Product::~Product(){}

ConcreteProductA::ConcreteProductA(){
    cout << "ConcreteProductA....." <<endl;
}
ConcreteProductA::~ConcreteProductA(){

}

ConcreteProductB::ConcreteProductB(){
    cout << "ConcreteProductB....." <<endl;
}

ConcreteProductB::~ConcreteProductB(){

}


Factory.h

#ifndef FACTORY_H_
#define FACTORY_H_
#include "Product.h"
#include <iostream>
using namespace std;

class Product;

class Factory
{
public:
    virtual ~Factory()=0;
    virtual Product* creatProductA()=0;
    virtual Product* creatProductB()=0;
protected:
    Factory();
private:
};

class ConcreteFactory:public Factory
{
public:
    ConcreteFactory();
    ~ConcreteFactory();
    Product* creatProductA();
    Product* creatProductB();
protected:
private:
};
#endif


Factory.cpp

#include "Factory.h"
#include "Product.h"
#include <iostream>

using namespace std;

Factory::Factory(){

}
Factory::~Factory(){

}
ConcreteFactory::ConcreteFactory(){
    cout << "ConcreteFactory..."<<endl;
}

ConcreteFactory::~ConcreteFactory(){

}

Product* ConcreteFactory::creatProductA(){
    return new ConcreteProductA();
}

Product* ConcreteFactory::creatProductB(){
    return new ConcreteProductB();
}




main.cpp

#include <iostream>
#include "Factory.h"
#include "Product.h"

using namespace std;

int main(){
    Factory* factory = new ConcreteFactory();
    Product* productA = factory->creatProductA();
    Product* productB = factory->creatProductB();
    return 0;
}
分享到:
评论
4 楼 horizonhyg 2008-12-17  
xzh_endless 写道

to horizonhyg : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "呵呵,你菜鸟的时候是怎么学的呢?别说你不写代码!"--说的很有道理

谢谢支持!
3 楼 xzh_endless 2008-12-15  
to horizonhyg :

        "呵呵,你菜鸟的时候是怎么学的呢?别说你不写代码!"--说的很有道理
2 楼 horizonhyg 2008-12-05  
Uranus 写道

什么东西,贴代码是没用的

呵呵,你菜鸟的时候是怎么学的呢?别说你不写代码!
1 楼 Uranus 2008-12-01  
什么东西,贴代码是没用的

相关推荐

    创建型模式之抽象工厂模式(Abstract Factory Pattern)

    1. 抽象工厂(Abstract Factory):这是模式的核心,它是一个接口或抽象类,定义了一系列创建对象的方法,但并不直接实例化具体的对象。这些方法用于创建一系列相关或相互依赖的对象。 2. 具体工厂(Concrete ...

    Abstract Factory Pattern.docx

    抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。这种模式的主要目的是为了隔离产品对象的创建过程,使得更换产品族或者...

    The Factory Pattern(工厂模式)ppt

    工厂模式是一种常用的设计模式,它的主要目的是为了封装对象的创建过程,从而使得代码更加灵活,易于维护和扩展。在Head First设计模式中,工厂模式被用来解决对象创建时的“变化”问题,尤其是在需要根据条件动态...

    前端大厂最新面试题-Factory Pattern.docx

    Factory Pattern(工厂模式) 在软件开发中,工厂模式(Factory Pattern)是一种常用的设计模式,用于创建对象的实例,而不暴露创建对象的具体逻辑。工厂模式的主要思想是将对象的创建过程封装起来,使得调用方不...

    Interfaces + Factory pattern = Decoupled architecture

    Interfaces + Factory pattern = Decoupled architecture

    Simple Factory Pattern.rar【GoF的简单工厂模式(C#源码)】

    简单工厂(Simple Factory)模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常它根据自变量的不同返回不同的类的实例。...我已经用C#的源码编程了:请下载Simple Factory Pattern.rar

    抽象工厂模式(Abstract Factory Pattern)

    ### 抽象工厂模式(Abstract Factory Pattern) #### 引入 在探讨抽象工厂模式之前,我们先回顾一下之前介绍过的简单工厂模式与工厂方法模式。这两种模式主要关注于解决对象创建过程中“new”操作的问题,使得创建...

    设计模式 之 “抽象工厂模式[Abstract Factory Pattern]”

    **抽象工厂模式(Abstract Factory Pattern)**是一种创建型设计模式,它提供了一种创建对象族的接口,而无需指定它们的具体类。这种模式是当一个系统需要根据不同的平台或者环境来创建一组相关或相互依赖的对象时,...

    创建型模式--工厂模式(Factory Pattern)示范代码

    java 创建型模式--工厂模式(Factory Pattern)示范代码demo,关于工厂模式可以查看我的博客 http://blog.csdn.net/u012930316/article/details/54599580

    Head First 设计模式 (四) 工厂模式(factory pattern) C++实现

    1. **抽象工厂(Abstract Factory)**:这是工厂模式的核心接口,定义了创建产品对象的公共接口。在C++中,通常用抽象类或者纯虚函数接口来表示。 2. **具体工厂(Concrete Factory)**:实现了抽象工厂接口,负责...

    C++factory pattern

    C++工厂模式是一种设计模式,属于创建型模式,它提供了一种封装对象创建的方式,使得客户端无需知道具体的创建逻辑,而是通过一个公共的接口来获取所需的对象。在给定的例子中,我们可以通过以下文件了解其具体实现...

    [创建型模式] 设计模式之抽象工厂模式(Abstract Factory Pattern)

    1. 抽象工厂(Abstract Factory):定义一个创建对象的接口,但不指定具体的产品实现,而是由具体的工厂类来实现。 2. 具体工厂(Concrete Factory):实现了抽象工厂接口,负责创建具体的产品对象。 3. 抽象产品...

    A-classic-factory-pattern-example.rar_factory

    这个"A-classic-factory-pattern-example.rar_factory"压缩包中包含的"一个工厂模式的简单但典型的例子"是为了帮助初学者理解和应用工厂模式而设计的。下面我们将详细探讨工厂模式的核心概念、工作原理以及其在实际...

    factory&singlton pattern

    标题中的“factory&singleton pattern”指的是工厂模式和单例模式,这是两种常见的设计模式,在软件工程中被广泛使用,特别是对于对象的创建和管理。设计模式是解决常见问题的成熟方案,它们为软件开发提供了良好的...

    Calculator:使用Command Factory Pattern的Java控制台应用程序

    【Calculator:使用Command Factory Pattern的Java控制台应用程序】 在编程领域,设计模式是解决常见问题的最佳实践和模板。"命令工厂模式"(Command Factory Pattern)是其中一种行为设计模式,它将请求封装为一个...

    Factory_Method&&Simple_Factory

    工厂方法模式(Factory Method Pattern)是设计模式中的创建型模式之一,主要解决对象创建过程中的复杂性问题。在软件工程中,当一个类不知道它所必须创建的对象的类的时候,它就不会实例化对象,而是使用一个工厂...

    DesignPattern

    在这个名为“DesignPattern”的压缩包中,包含了一个关于简单工厂模式(Simple Factory Pattern)的示例,名为“DesignPattern_SimpleFactoryPattern”。 简单工厂模式的核心思想是将对象的创建过程封装到一个单独...

    常见设计模式的解读和对应代码示例,包括设计原则和软件工程中类之间的依赖关系

    抽象工厂模式(Abstract Factory Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern) 结构型模式(Structural Pattern) 适配器模式(Adapter/Wrapper Pattern) 桥接模式(Bridge Pattern) 装饰模式...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER ...

    Design Pattern & Examples

    本文将深入探讨工厂方法模式(Factory Method Pattern)与抽象工厂模式(Abstract Factory Pattern),并结合给定文件中的实例进行详细解析。 ### 工厂方法模式(Factory Method Pattern) 工厂方法模式是一种创建...

Global site tag (gtag.js) - Google Analytics