Certainly :)

Doru


On Sat, Jul 20, 2013 at 1:48 PM, Camillo Bruni <camillobr...@gmail.com>wrote:

> How about statefull Traits?
> http://scg.unibe.ch/archive/papers/Berg07aStatefulTraits.pdf
>
>
> On 2013-07-20, at 12:48, Denis Kudriashov <dionisi...@gmail.com> wrote:
> > Hi
> >
> > 2013/7/19 Igor Stasenko <siguc...@gmail.com>
> >
> >> So, on your place, if you really need a lot of classes with announcer
> >> capabilities, you can do it like that:
> >>
> >> Object subclass: #ObjectWithAnnouncer
> >> instvars: 'announcer'
> >>
> >>
> > ObjectWithAnnouncer is exactly what I think about Announcer. I just need
> > class which makes my objects events sources. And I'm wondering why
> > Announcer is bad for this?
> > Just look at Announcer definition:
> >
> > Object subclass: #Announcer
> >
> > instanceVariableNames: 'registry'
> >
> > classVariableNames: ''
> >
> > poolDictionaries: ''
> >
> > category: 'Announcements-Core'
> >
> >
> > "registry" variable is instance of SubscriptionsRegistry which actually
> > implements all announcements logic. Announcer just adds convenient public
> > api to events subscriptions and delivering. No complex logic. No actual
> > knowledge about how announcements work.
> > And your argument "why you subclass from Announcer" looks to me like why
> > you subclass from SubscriptionsRegistry. But I'm not. Nobody doing it.
> > So i'm not understand why you want another wrapper around Announcer.
> >
> > (To me "subscriptions" is better name then "registry". And I prefer
> > composition than inheritance too).
> >
> >
> >
> >> then may implement same protocol as in Announcer in it, which will
> >> simply delegate to announcer ivar.
> >> And i bet, you don't want to expose full Announcer protocol there,
> >> while probably you may want to implement some convenience protocols,
> >> which Announcer lacking.
> >>
> >> So, at the end by subclassing from ObjectWithAnnouncer you will be
> >> reusing its capabilities in each and every subclass of it, but by
> >> delegating real job, you are free from worrying about dealing with
> >> implementation detail and exposing unwanted state/protocols to its
> >> users.
> >>
> >> Another aspect of it, is when i see:
> >>
> >> ObjectWithAnnouncer subclass: #MyDomainObject
> >>
> >> it tells me, aha.. so some (at least this one) of his domain objects
> >> having announcers,
> >> and the valid protocols is defined in ObjectWithAnnouncer.
> >>
> >> but when i see
> >>
> >> Announcer subclass: #MyDomainObject
> >>
> >> i starting to be uncertain: is Announcer private there or public?
> >> can i send messages like #basicSubscribe: to your domain object and
> expect
> >> that
> >> it will be handled correctly? Or do i allowed to subscribe directly at
> >> all, because maybe
> >> domain object has some specific protocol(s) and ways to do that..
> >> Every such question and uncertainty for coder means more time, more
> >> errors, and less productivity.
> >>
> >>
> >> --
> >> Best regards,
> >> Igor Stasenko.
> >>
> >>
>
>
>


-- 
www.tudorgirba.com

"Every thing has its own flow"

Reply via email to