Skip navigation.
 
mlRe: Subclassing Catch-22
FROM : Greg Titus
DATE : Tue Apr 26 22:57:05 2005

On Apr 26, 2005, at 20:28, Todd Ransom wrote:
> I have a controller class that has methods like this:
>
> - (BOOL)doSomething;
> - (NSString *)getInformationRequiredToDoSomething;
>
> - (BOOL)doSomething {
>
>    NSString *info = [self getInformationRequiredToDoSomething];
>    ...
> }
>
> Which works fine until I subclass. In my subclass I would like
> doSomething to call super for a subset of possible actions. But when I
> call super it calls [self getInformationRequiredToDoSomething] and
> returns its own info, not super's.


The pattern for this would be to make the superclass actually implement:

- (NSString *)internalInformationRequired;
{
   ...
}

- (NSString *)getInformationRequiredToDoSomething
{
   return [self internalInformationRequired];
}

- (BOOL)doSomething
{
   NSString *info = [self internalInformationRequired];
}

Then even if you override getInformationRequiredToDoSomething in a
subclass, the superclass's doSomething will get the original
information from the superclass. But like Ondra, I suspect that there
may be a better way to design this, if I had more information on what
you are trying to do.

Hope this helps,
    - Greg

Related mailsAuthorDate
mlSubclassing Catch-22 Todd Ransom Apr 26, 20:28
mlRe: Subclassing Catch-22 Marco Scheurer Apr 26, 22:05
mlRe: Subclassing Catch-22 Todd Ransom Apr 26, 22:20
mlRe: Subclassing Catch-22 Ondra Cada Apr 26, 22:32
mlRe: Subclassing Catch-22 Greg Titus Apr 26, 22:57
mlRe: Subclassing Catch-22 Marco Scheurer Apr 26, 23:09
mlRe: Subclassing Catch-22 Todd Ransom Apr 26, 23:17
mlRe: Subclassing Catch-22 Marco Scheurer Apr 26, 23:45
mlRe: Subclassing Catch-22 Ondra Cada Apr 26, 23:54
mlRe: Subclassing Catch-22 glenn andreas Apr 26, 23:57
mlRe: Subclassing Catch-22 Todd Blanchard Apr 27, 00:22
mlRe: Subclassing Catch-22 Todd Ransom Apr 27, 00:30
mlRe: Subclassing Catch-22 Ondra Cada Apr 27, 00:36
mlRe: Subclassing Catch-22 Todd Ransom Apr 27, 00:38
mlRe: Subclassing Catch-22 Marco Scheurer Apr 27, 01:03
mlRe: Subclassing Catch-22 Dan Treiman Apr 27, 01:40
mlRe: Subclassing Catch-22 Ondra Cada Apr 27, 01:47