Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Generic Abstract Factory

Reply
Thread Tools

Generic Abstract Factory

 
 
Sebastian Faust
Guest
Posts: n/a
 
      10-27-2003
Hi,

I am currently reading the chapter about abstract factorys from "Modern C++
Design" and wondering how it would be possible to create an object which has
a constructor with parameters. At the moment I can't see any way how to
solve this problem? Is there any way how to implement such?
Furthermore I read in the GoF book that usually Abstract Factorys are
implemented using Factory Methods. At the moment I can't see where in the
generic case of Abstract Factory, Factory Methods are used.

Thanks in advance
Sebastian


 
Reply With Quote
 
 
 
 
Thomas Matthews
Guest
Posts: n/a
 
      10-27-2003
Sebastian Faust wrote:
> Hi,
>
> I am currently reading the chapter about abstract factorys from "Modern C++
> Design" and wondering how it would be possible to create an object which has
> a constructor with parameters. At the moment I can't see any way how to
> solve this problem? Is there any way how to implement such?
> Furthermore I read in the GoF book that usually Abstract Factorys are
> implemented using Factory Methods. At the moment I can't see where in the
> generic case of Abstract Factory, Factory Methods are used.
>
> Thanks in advance
> Sebastian
>
>


Here is what I use:
class Any_Class
: public Some_Base_Class
{
public:
Any_Class(/* deault parameters */);
Any_Class(const Any_Class& ac); // copy constructor
Any_Class(istream& inp); // construct from text stream
virtual ~Any_Class();

static Some_Base_Class * create(istream& inp,
unsigned int id);
};

Some_Base_Class *
Any_Class ::
create(istream& inp, unsigned int id)
{
Some_Base_Class * p_base(NULL);
if (id = ID_ANY_CLASS)
{
p_base = new Any_Class(inp);
}
return p_base;
}


In the factory:
typedef Some_Base_Class * (*P_CREATE_FUNC)(istream& inp, id);

const P_CREATE_FUNC creation_table[] =
{
Any_Class::create()
};
const unsigned int NUM_CREATION_FUNCS = sizeof(creation_table)
/ sizeof(creation_table[0]);

Some_Base_Class *
Factory ::
create(istream& inp)
{
unsigned int id;
Some_Base_Class * p_base(NULL);

inp >> id;
for (unsigned int i = 0;
(p_base == NULL) && (i < NUM_CREATION_FUNCS); ++i)
{
p_base = (creation_table[i])(inp, id);
}
return p_base;
}

--
Thomas Matthews

C++ newsgroup welcome message:
http://www.slack.net/~shiva/welcome.txt
C++ Faq: http://www.parashift.com/c++-faq-lite
C Faq: http://www.eskimo.com/~scs/c-faq/top.html
alt.comp.lang.learn.c-c++ faq:
http://www.raos.demon.uk/acllc-c++/faq.html
Other sites:
http://www.josuttis.com -- C++ STL Library book
http://www.sgi.com/tech/stl -- Standard Template Library

 
Reply With Quote
 
 
 
 
Noah Roberts
Guest
Posts: n/a
 
      10-27-2003
Sebastian Faust wrote:
> Hi,
>
> I am currently reading the chapter about abstract factorys from "Modern C++
> Design" and wondering how it would be possible to create an object which has
> a constructor with parameters.


No. But you can use the prototype pattern as Sebastian recommends.

--
Noah Roberts
- "If you are not outraged, you are not paying attention."

 
Reply With Quote
 
Gianni Mariani
Guest
Posts: n/a
 
      10-27-2003
Sebastian Faust wrote:
> Hi,
>
> I am currently reading the chapter about abstract factorys from "Modern C++
> Design" and wondering how it would be possible to create an object which has
> a constructor with parameters. At the moment I can't see any way how to
> solve this problem? Is there any way how to implement such?
> Furthermore I read in the GoF book that usually Abstract Factorys are
> implemented using Factory Methods. At the moment I can't see where in the
> generic case of Abstract Factory, Factory Methods are used.
>


Here is a complete generic factory template library that allows you to
create objects with various parameters (0 ... 3 args - but easily extended).

It's a tad long so I placed it on my web server.

http://mariani.ws/~gianni/at_factory.h

This is going to be part of the "Austria C++" library I'm toying with.

I'll be doing V 0.1 soon so critique (preferably friendly but I'll
accept anything) is welcome.

Copyright is mine. Use it via the GPL - I can be arm twisted to do LGPL.


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Abstract factory and Factory pattern C# ASP .Net 4 07-31-2008 03:22 PM
File Paramaterized Abstract Factory Charles Krug Python 2 01-11-2006 01:11 PM
Design Pattern - Abstract Factory =?Utf-8?B?bWF4?= ASP .Net 2 10-18-2005 05:05 PM
Abstract Factory or Factory Method pattern question.... Medi Montaseri C++ 17 09-03-2003 06:50 AM
Code behind with use of Abstract Factory? Christer ASP .Net 3 08-27-2003 07:20 PM



Advertisments