On Jul 21, 2013, at 5:36 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:

2013/7/21 Igor Stasenko <siguctua@gmail.com>
Yes, but where are the guarantees that you don't?
Just think from outsider's point of view: when he sees

 Announcer subclass: #Foo

what he will think first:
 - aha, this guy implements own kind of announcer
or
 - aha this guy reusing announcer
or
 - aha, this guy doing both things at the same time (a worst possible
alternative)

and how many abuses like that, he should see before making a logical conclusion:
 - aha.. this is the way how i should do as well.

Interesting how many people in this list think that "Announcer subclass: #TxEditor" provides special implementation of announcer named TxEditor?

Many 
this is composition using inheritance and inheritance should not be used like that. 

Announcer subclass: #GreedyAnnouncer

Announcer subclass: #RemoteAnnouncer

Are quite different from 
Announcer subclass: #Customer

This is not because subclassing can be used that we should do it.
We suffer during years from 
Dictionary subclass: #Set
and other beauties.




Because to me it is not practical design issues when we talk about subclassing Announcer.