On Jul 21, 2013, at 5:36 PM, Denis Kudriashov <dionisi...@gmail.com> wrote:
> 2013/7/21 Igor Stasenko <siguc...@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. >