What we could do (maybe this is a bit overkill):

- make an announcements hierarchy (NautilusPackageAnnouncement -> NautiulusClassAnnouncement ...) but never subscribe to this Announcemnts
- create sub classes for every "kind"
NautilusPackageAnnouncement subclass: NautilusPackageChangedAnnouncement
NautilusPackageAnnouncement subclass: NautilusPackageSelectedAnnouncement

NautilusClassAnnouncement subclass: NautilusClassSelectedAnnouncement
NautilusClassAnnouncement subclass: NautilusClassChangedAnnouncement

And only subscribe to this subclasses.
That way we are using the hierarchy of Announcement classes for removing of duplicated code, but only register and announce the "leaf"-nodes (NautilusClassChangedAnnouncement / NautilusPackageChangedAnnouncement...)

what do you think?

This may do. Also another option would be to have a NautilusSelectionAnnouncement with all 4 attributes, and then just subclass it for a different type.

Yes this solution is less verbose and has my preference.

stef

Reply via email to