in reply to OO, Library Configuration and Class Variables
Untested code:
You will create interface methods for all Lookup objects. You can also create other Lookup classes, like Lookup::DBI, Lookup::CSV, etc, just implementing the interface methods. You can write a base class like Lookup, having all caching you need, and then specializing the datasources (DBI, CSV, SOAP).# User doesn't mind if it is local or remote, he wants the data package Lookup; ... sub is_user_in_cache { ... } sub get_user_data { warn 'You should implement this method!'; } ... package Lookup::Remote; use base 'Lookup'; sub get_user_data { ... } ... package main; use Lookup::Remote; my $lookup = Lookup->new({ remote_uri => $uri, }); use User; # Tell User class the lookup method it will use. User->set_lookup($lookup); my $user = User->new({ id => 1234, });
I hope this helps.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: OO, Library Configuration and Class Variables
by moot (Chaplain) on Jun 23, 2005 at 20:59 UTC | |
by Transient (Hermit) on Jun 23, 2005 at 21:17 UTC | |
by moot (Chaplain) on Jun 23, 2005 at 22:37 UTC | |
by izut (Chaplain) on Jun 23, 2005 at 23:25 UTC | |
by Transient (Hermit) on Jun 24, 2005 at 13:29 UTC | |
by moot (Chaplain) on Jun 24, 2005 at 13:52 UTC | |
by izut (Chaplain) on Jun 23, 2005 at 21:52 UTC | |
by moot (Chaplain) on Jun 23, 2005 at 22:18 UTC | |
by Tanktalus (Canon) on Jun 24, 2005 at 02:14 UTC |