> 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
