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