> Am 30.08.2016 um 09:44 schrieb Denis Kudriashov <[email protected]>:
> 
> Hi
> 
> 2016-08-30 8:52 GMT+02:00 Norbert Hartl <[email protected] 
> <mailto:[email protected]>>:
> I think for the 0 case we should think about instantiating the 
> SubscriptionRegistry lazily. This would also mitigate the effect that if a 
> lot of announcers are created they create only a single object instead of two 
> until used. Of course this depends on the probability of having a lot of 
> announcers where only a few are used.
> The #announce: method looks like it has been lazy before.
> 
> Announcer>>#announce: anAnnouncement
> 
>         | announcement |
>         announcement := anAnnouncement asAnnouncement.
>         registry ifNotNil: [
>                 registry deliver: announcement
>                 ].
>         ^ announcement
> 
> checks for #ifNotNil: but registry is created in #initialize. So #ifNotEmpty: 
> would be right here but #deliver: checks that, too.
> 
> We always hide announcer instance inside owner. So it could instantiate 
> announcer lazily if such optimization really needed.

That prevents creating an announcer until someone creates the announcer lazily. 
That does not mean there is a subscription, especially if there are 
announcements sent. Announcements are such a central component (we made it that 
way) that every useful optimization should be considered!

Norbert

Reply via email to