Click here to Skip to main content
15,897,371 members
Articles / Programming Languages / C++

Different Ways of Implementing Factories

Rate me:
Please Sign up or sign in to vote.
4.49/5 (34 votes)
26 Mar 20036 min read 122.9K   811   85  
This article presents different ways of implementing factories, each with their own advantages and disadvantages.
#include <iostream>

class SimpleBaseClass
   {
   public:
      virtual int  getValue()          = 0;
      virtual void setValue(int value) = 0;
   };

class SimpleClass1 : public SimpleBaseClass
   {
   public:
      int  getValue()          {return m_value;}
      void setValue(int value) {m_value = value;}
   private:
      int m_value;
   };

class SimpleClass2 : public SimpleBaseClass
   {
   public:
      int  getValue()          {return m_value*100;}
      void setValue(int value) {m_value = value;}
   private:
      int m_value;
   };

class SimpleClassFactory
   {
   public:
      SimpleBaseClass *createInstance1() {return new SimpleClass1;}
      SimpleBaseClass *createInstance2() {return new SimpleClass2;}
   };

void main()
{
SimpleBaseClass    *simpleInstance     = NULL;
SimpleClassFactory  simpleClassFactory;

simpleInstance = simpleClassFactory.createInstance1();
simpleInstance->setValue (123);
std::cout << simpleInstance->getValue() << std::endl;
delete simpleInstance;

simpleInstance = simpleClassFactory.createInstance2();
simpleInstance->setValue (123);
std::cout << simpleInstance->getValue() << std::endl;
delete simpleInstance;
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.


Written By
Software Developer (Senior) Patrick Van Cauteren
Belgium Belgium

Comments and Discussions