in reply to OO Design question: configuration
The mixin is conceptually very simple:
Which, when used (a simple use My::ConfigMixin; will do), gives your object the method config. Since its first param is your requesting object, you can do all sorts of filtering based on $self (access control, limiting output, etc).package My::ConfigMixin; use base qw/ Exporter /; our @EXPORT = qw/ config /; sub config { my $self = shift; somehow_get_config(@_); }
The main issue here is maintaining state. Pretty much your only option is to use package variables in My::ConfigMixin, which can get messy. I'd be interested to learn more about Traits that need state, but sofar I'm a newbie on the subject.
The factory might be a better alternative: it can maintain state on its singleton instance.
|
|---|