I have a new app that I'm trying to make sure I've created the right inheritance tree for common/ reused methods. Right now, it looks like this:
where SiteManager.pm really just holds utility function, common modules, etc. When I first put this together, it only required the EmailManager module, so I didn't have the SiteManager or EventManager pieces. now that the site is growing in functionality, I want to break out common methods , but i still want to run the application through one main CGI::Application-type $obj->run()
Right now, both EmailManager and EventManager use base qw# SiteManager # , which would make sense if i were running 2 different CGI-base scripts (which i've done previously).
i know that i could probably get away with instantiating one or the other object in the cgiapp_init method, but that doesn't feel like 'the right way'.
should i adjust my inheritance somehow? should i build a separate controller module that uses both EmailManager and EventManager (and 'imports' their methods via the cgiapp_init() method), and have that be a subclass of SiteManager?