Re: Factory method
- From: "James Curran" <jamescurran@xxxxxxxx>
- Date: Fri, 22 Apr 2005 10:37:56 -0400
Well, yes, but then, having the base class have any knowledge at all
it's derived classes defeats the purpose of OO.
--
--
Truth,
James Curran
[erstwhile VC++ MVP]
Home: www.noveltheory.com Work: www.njtheater.com
Blog: www.honestillusion.com Day Job: www.partsearch.com
"Mark" <Mark@xxxxxxxxxxx> wrote in message
news:uQz4Cf0RFHA.2348@xxxxxxxxxxxxxxxxxxxxxxx
> I have an abstract class, and a set of classes that inherit from my
abstract
> class. The fact that it is abstract is likely irrelevant. I have a static
> factory method in my abstract class that creates subclasses. The
> constructor in my subclasses must be able to call the constructor in my
base
> class. For the factory method in my abstract class to call the
constructor
> on my subclasses, the constructor in the subclass MUST be public (or
> internal). They cannot be private or protected. However, doen't that
> basically defeat the purpose of factory? I'd love to be able to make all
> these constructors private or similar so that someone can't create
subclass
> instances without using the Factory. If this was all in a separate DLL, I
> suppose I'd be saved by "internal", but we have small team of developers
> working on projects where that type of seperation really shouldn't be
> necessary.
>
> Suggestions? Code sample below ...
>
> Thanks in advance.
>
> Mark
>
>
> public abstract class MyBase
> {
> protected string first;
>
> public MyBase(string first )
> {
> this.first = first;
> }
>
> public static MyBase Factory(int stateId)
> {
> switch (stateId)
> {
> case 700:
> return new MySubClass1(first);
> default:
> throw new Exception("Bogus code!");
> }
> }
> }
>
>
.
- References:
- Factory method
- From: Mark
- Factory method
- Prev by Date: Re: add numbers in file
- Next by Date: Multiple Calls to DropDownList SelectedIndexChange event
- Previous by thread: Factory method
- Next by thread: Re: Factory method
- Index(es):
Relevant Pages
|