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