Re: Abstract class with single subclass
Re: Abstract class with single subclass
- Subject: Re: Abstract class with single subclass
- From: Michael Ash <email@hidden>
- Date: Wed, 27 May 2009 10:50:09 -0400
On Wed, May 27, 2009 at 9:48 AM, Freddie Tilley <email@hidden> wrote:
> If I would want to allocate a class which allocates a single subclass
> instead, to
> hide the class implementation details
>
> would this be the correct way of doing it?
>
> The following code would be in the BaseClass
>
> + (id)allocWithZone:(NSZone*)aZone
> {
> if ([[self class] isEqualTo:[BaseClass class]])
> {
> return [[SubClass alloc] init];
Close. You only want to do return [SubClass alloc] here. The caller
will be calling -init as usual after your method returns.
Alternatively, you can have a factory method which does both alloc and
init and returns that to the caller. Both work fine, it's pretty much
just a question of what you prefer. Overriding +allocWithZone: works
better if you have many different initializers for the caller to
choose from.
Mike
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden