I'm struggling with the best location to put some methods that will be
used for both loading a session-based instance as well as performing
simple actions.

For example, I have three components:

AceLinkUser
--The main component
--Is aware of the user; stores data in an instance variable
--An instance of this will be stored in the session scope
--Calls methods from ActiveDirectoryService to load data during Init()
--Calls methods from UserService to load data during Init()

UserService
--Used to gather user-related information
--Is unaware of data; only returns data to the caller; no instance
variables
--Calls methods from ActiveDirectoryService
--Contains methods that pull information from other data sources

ActiveDirectoryService
--Communicates with Active Directory
--Is unaware of data; stores connection information in an instance
variable
--Does not consume any other components
--Contains the main LDAP query method
--Contains other utility methods that use the LDAP query method

As you can see, AceLink user calls the other two components.
UserService, in turn, may also call the ActiveDirectoryService
component.

To instantiate my AceLinkUser object, I need to know if a user is a
faculty member.  This information is stored in an Active Directory
domain group.

Currently, AceLinkUser's Init() calls "IsFaculty(username) method from
the UserService component.  I could have also placed this same method in
the ActiveDirectoryService component, but I felt it would be best to
"abstract" the call by creating a UserService component.

Is it best to keep the methods "at the lowest level" in the component
organization?  Where is the best location for IsFaculty()?

Is it bad to have a single component call a common component directly AS
WELL AS call a compoent that, in turn, calls the common component?

I'm not really concerned about performance at this time.  I'm only
interested in how components would be best structured in this example.

Thanks

M!chael A. Dawson
Group Manager, Programming and Software Development
Office of Technology Services
University of Evansville
1800 Lincoln Avenue
Evansville, IN 47722
812-479-2581
----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email
to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev'
in the message of the email.

CFCDev is run by CFCZone (www.cfczone.org) and supported
by Mindtool, Corporation (www.mindtool.com).

Reply via email to