subclassResponsibility

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

subclassResponsibility

Jimmie Houchin-5
Hello,

I have created a class which will have many subclasses some of which
will have subclasses of their own.

I want every single class to implement a class method #shortName which
will provide a short string as a human readable short identifier to the
object.

I have in the highest superClass


shortName

     self subclassResponsibility


But the moment I implement it in a subclass which has subclasses. Those
subclasses are now using their closest superClasses implementation.

Is there a way force allSubclasses to implement the method?


Thanks.


Jimmie
Reply | Threaded
Open this post in threaded view
|

Re: subclassResponsibility

Richard Sargent (again)
Is there a way force allSubclasses to implement the method?

No. Pretty much, you need to avoid subclassing concrete classes.
i.e. if A has subclasses B and C, refactor to create an abstract A' and move
A to be a leaf subclass of A'.

-----Original Message-----
From: Jimmie Houchin [mailto:[hidden email]]
Sent: December 22, 2020 15:08
To: Any question about pharo is welcome
Subject: [Pharo-users] subclassResponsibility

Hello,

I have created a class which will have many subclasses some of which will
have subclasses of their own.

I want every single class to implement a class method #shortName which will
provide a short string as a human readable short identifier to the object.

I have in the highest superClass


shortName

     self subclassResponsibility


But the moment I implement it in a subclass which has subclasses. Those
subclasses are now using their closest superClasses implementation.

Is there a way force allSubclasses to implement the method?


Thanks.


Jimmie
Reply | Threaded
Open this post in threaded view
|

Re: subclassResponsibility

Jimmie Houchin-5
I didn't thinks so, but was not sure.

I have not done much with Abstract classes. I will have to think about
that and its design implications.

Thanks for the suggestion.

Jimmie


On 12/22/20 8:01 PM, Richard Sargent wrote:

> Is there a way force allSubclasses to implement the method?
>
> No. Pretty much, you need to avoid subclassing concrete classes.
> i.e. if A has subclasses B and C, refactor to create an abstract A' and move
> A to be a leaf subclass of A'.
>
> -----Original Message-----
> From: Jimmie Houchin [mailto:[hidden email]]
> Sent: December 22, 2020 15:08
> To: Any question about pharo is welcome
> Subject: [Pharo-users] subclassResponsibility
>
> Hello,
>
> I have created a class which will have many subclasses some of which will
> have subclasses of their own.
>
> I want every single class to implement a class method #shortName which will
> provide a short string as a human readable short identifier to the object.
>
> I have in the highest superClass
>
>
> shortName
>
>       self subclassResponsibility
>
>
> But the moment I implement it in a subclass which has subclasses. Those
> subclasses are now using their closest superClasses implementation.
>
> Is there a way force allSubclasses to implement the method?
>
>
> Thanks.
>
>
> Jimmie